Nginx多域名配置


  我們都知道如果在域名管理的控制面板設置域名對應ip只能設置到ip,不能詳細設置到端口。如果一台服務器部署了多個web應用,使用的不同端口啟動的,那么就可以Nginx做映射。

  比如我有一個域名 www.525.life;域名還可以分出2級域名: admin.525.life。我在域名控制面板把這兩個域名都指向我的服務器公網ip:123.123.123.123。這時候發現www.525.life和admin.525.life域名訪問都只是對應到了使用端口80的Web程序(默認的)。如果我們要訪問81端口的應用程序只能使用:www.525.life:81或者admin.525.life:81。但是這樣很不方便,我們要把端口去掉也能訪問就需要使用Nginx做映射。

  我們期望www.525.life訪問8880端口,admin.525.life訪問8881端口。那么可以設置如下:

server{ listen 80; server_name www.525.life; location / { #.... proxy_pass http://localhost:8880;
 } ##### other directive } server{ listen 80; server_name admin.525.life; location / { #.... proxy_pass http://localhost:8881;
 } ##### other directive }

  這樣設置就可以了,把8880和8881都映射到80端口的監聽,這樣就能使用www.525.life訪問8880端口,admin.525.life訪問8881端口。

1、每個域名一個conf的寫法

  我們在上面的例子中使用的是一個文件多個域名的寫法,也就是只使用一個conf,在里面不斷的增加server。這種方式很直觀,但是域名多了不好管理。
  Nginx支持引入的用法,也就是我們可以在其他地方先新建好conf文件,conf文件中記錄server的信息如下:
  admin.conf中的內容是:

server{ listen 80; server_name admin.525.life; location / { #.... proxy_pass http://localhost:8881;
 } ##### other directive }

  www.conf中的內容是:

server{ listen 80; server_name www.525.life; location / { #.... proxy_pass http://localhost:8880;
 } ##### other directive }

  admin.conf和www.conf都放在/data/nginx/conf/vhost目錄下。

  然后在nginx.conf中使用引入命令:include  /data/nginx/conf/vhost/*.conf;即可。

  需要注意的是這句命令應該放在:http{}  的花括號內。因為include的命令引入相當於被引入的所有代碼寫在nginx.conf中一樣。

2、301跳轉

  我們留意到生活中很多時候不帶www也能訪問到某個網站,這也能通過Nginx實現。跟上面的配置一樣,再增加一個server如下:

server{ listen 80; server_name 525.life; location / { #.... proxy_pass http://localhost:8880;
 } ##### other directive }

  或者進行301跳轉

server{ listen 80; server_name 525.life; rewrite ^/(.*) http://www.525.life/$1 permanent;
}

3、添加404網頁

  添加404網頁,都可直接在里面添加,如:

server{   listen 80;   server_name www.web126.com; #綁定域名   error_page 404 /404.html; } 

4、禁止IP直接訪問

  最后還有一個方法需要注意,可能有需要禁止IP直接訪問80端口或者禁止非本站的域名綁定我們的IP,這樣的話應該如下處理,放到最前一個server上面即可:

server{   listen 80 default;   server_name _;   return 403; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM