Nginx 單IP綁定多域名配置 頂級域名重定向到www域名

在網站部署中,通常會有多個域名,可以是多個子域名也可以是其它域名,例如我的域名是yddsj.com,有以下域名需要綁定

www.yddsj.com

blog.yddsj.com

bbs.yddsj.com

www.abc.com

且每個域名對應的是一個網站程序,而我們只有一個公網IP的時候應該怎樣去解析這麼多域名並將他們轉發到各自的網站程序呢?


另外,本文講解的前提是以上所有域名都能解析到你的服務器上的nginx服務器了,且本文爲例的yddsj.com都是虛構的域名...


nginx單IP多域名配置


# 博客網站程序路徑
upstream blog {
	server 127.0.0.1:9001;      
}

# 論壇網站程序路徑
upstream bbs {
	server 127.0.0.1:9002;      
}

# xx網站程序路徑
upstream abc {
	server 127.0.0.1:9003;      
}

server {
	listen       80;
	server_name  blog.yddsj.com;  # 博客網站域名
	location / {
		index  index.html index.jsp;    
		proxy_pass  http://blog;    
		proxy_set_header   REMOTE-HOST $remote_addr;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size    100m; 
	}
}
server {
	listen       80;
	server_name  bbs.yddsj.com;
	location / {
		index  index.html index.php;  # 論壇網站域名  
		proxy_pass  http://bbs;    
		proxy_set_header   REMOTE-HOST $remote_addr;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size    100m; 
	}
}
server {
	listen       80;
	server_name  www.abc.com;
	location / {
		index  index.html index.php;   # xx網站域名 
		proxy_pass  http://abc;    
		proxy_set_header   REMOTE-HOST $remote_addr;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size    100m; 
	}
}

主要是配置一個upstream指定後端代理的網站地址,再配置一個server,指定其中的server_name爲你的域名,以及proxy_pass爲upstream的名稱。


nginx 頂級域名重定向到www域名

至於頂級域名爲什麼要重定向到www域名,作者在另一片文章中已經提到過,可參考點擊打開鏈接 在文章最後有說明。

例如我要將yddsj.com重定向到www.yddsj.com下則要進行以下配置

# 主站網站程序路徑
upstream yddsj {
	server 127.0.0.1:81;      
}

server {
	listen       80;
	server_name  www.yddsj.com yddsj.com;  #  主站網站域名包括www域名和頂級域名
	if ($host = 'yddsj.com' ) {            #  這裏的作用就是把訪問yddsj.com的請求重定向到www域名下面
		rewrite ^/(.*)$ http://www.yddsj.com/$1 permanent;
	}
	location / {
		index  index.html index.jsp;    
		proxy_pass  http://yddsj;
		proxy_set_header   REMOTE-HOST $remote_addr;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size    100m; 
	}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章