Nginx 二级域名入门配置
Nginx 二级域名入门配置
Finley.Hamilton 发表于2年前
Nginx 二级域名入门配置
  • 发表于 2年前
  • 阅读 136
  • 收藏 14
  • 点赞 0
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

要解决的问题

一个域名,如果只挂一个站点有点浪费,希望可以 aa.hostname.com -> localhost:8000 bb.hostname.com -> localhost:8001

思路

  • 在 /etc/hosts 底下加入对hostname.com, aa.hostname.com, bb.hostname.com的解析。
  • 二级域名的本质是用proxy_pass来实现的,路径的match导致请求重定向到proxy_pass的地方

方案

这是一个完整的/etc/nginx/nginx.conf,用python -m http.server来做示范了

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# nginx-naxsi config
	##
	# Uncomment it if you installed nginx-naxsi
	##

	#include /etc/nginx/naxsi_core.rules;

	##
	# nginx-passenger config
	##
	# Uncomment it if you installed nginx-passenger
	##
	
	#passenger_root /usr;
	#passenger_ruby /usr/bin/ruby;

	##
	# Virtual Host Configs
	##

	server {
		server_name aa.hostname.com;
		listen 80;
		location / {
			proxy_pass	http://127.0.0.1:8000/Documents/;
		}
	}

        server {
		server_name bb.hostname.com;
		listen 80;
		location / {
			proxy_pass	http://127.0.0.1:8001/Documents/;
		}
	}
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

Nginx Road Map

显然只有http协议底下的转发是容易的,需要考虑如果有websocket的情况如何进行转发。 感觉思路应该是大体上一致的。

Ref Reverse Proxy Official Admin Guide 值得学的东西太多

大坑

如果hostname.com是被/etc/hosts解析的,一定要加上对aa.hostname.com;bb.hostname.com的解析才可以

共有 人打赏支持
Finley.Hamilton
粉丝 5
博文 44
码字总数 15431
×
Finley.Hamilton
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: