麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Nginx > 正文

一臺nginx服務器多域名配置的方法

2024-08-30 12:29:37
字體:
來源:轉載
供稿:網友

Nginx強大的正則表達式支持,可以使server_name的配置變得很靈活,如果你要做多用戶博客,那么每個用戶擁有自己的二級域名也就很容易實現了。

下面我就來說說server_name的使用吧:

server_name的匹配順序

Nginx中的server_name指令主要用于配置基于名稱虛擬主機,server_name指令在接到請求后的匹配順序分別為:

1、準確的server_name匹配,例如:

server {listen 80;server_name ssdr.info www.ssdr.info;...}

2、以*通配符開始的字符串:

server {listen 80;server_name *.ssdr.info;...}

3、以*通配符結束的字符串:

server {listen 80;server_name www.*;...}

4、匹配正則表達式:

server {listen 80;server_name ~^(?.+)/.howtocn/.org$;...}

Nginx將按照1,2,3,4的順序對server name進行匹配,只有有一項匹配以后就會停止搜索,所以我們在使用這個指令的時候一定要分清楚它的匹配順序(類似于location指令)。

server_name指令一項很實用的功能便是可以在使用正則表達式的捕獲功能,這樣可以盡量精簡配置文件,畢竟太長的配置文件日常維護也很不方便。下面是2個具體的應用:

在一個server塊中配置多個站點: 

server{listen 80;server_name ~^(www/.)?(.+)$;index index.php index.html;root /data/wwwsite/$2;}

站點的主目錄應該類似于這樣的結構:

/data/wwwsite/ssdr.info/data/wwwsite/linuxtone.org/data/wwwsite/baidu.com/data/wwwsite/google.com

這樣就可以只使用一個server塊來完成多個站點的配置。

在一個server塊中為一個站點配置多個二級域名 。

實際網站目錄結構中我們通常會為站點的二級域名獨立創建一個目錄,同樣我們可以使用正則的捕獲來實現在一個server塊中配置多個二級域名:

server{listen 80;server_name ~^(.+)?/.howtocn/.org$;index index.html;if ($host = ssdr.info){rewrite ^ http://www.ssdr.info permanent;}root /data/wwwsite/ssdr.info/$1/;}

站點的目錄結構應該如下:

/data/wwwsite/ssdr.info/www//data/wwwsite/ssdr.info/nginx/

這樣訪問www.ssdr.info時root目錄為/data/wwwsite/ssdr.info/www/,nginx.ssdr.info時為/data/wwwsite/ssdr.info/nginx/,以此類推。

后面if語句的作用是將ssdr.info的方位重定向到www.ssdr.info,這樣既解決了網站的主目錄訪問,又可以增加seo中對www.ssdr.info的域名權重。

多個正則表達式

如果你在server_name中用了正則,而下面的location字段又使用了正則匹配,這樣將無法使用$1,$2這樣的引用,解決方法是通過set指令將其賦值給一個命名的變量:

server{listen 80;server_name ~^(.+)?/.howtocn/.org$;set $www_root $1;root /data/wwwsite/ssdr.info/$www_root/;location ~ .*/.php?$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /data/wwwsite/ssdr.info/$fastcgi_script_name;include fastcgi_params;}}

Nginx不同域名反向代理到另一臺服務器 proxy_pass和$host

想讓一個VPS專門做另一個VPS的前端,后端VPS每添加一個域名,前端VPS就要同時添加一個域名來反向代理,作為前端的VPS如果一個一個的添加后端VPS的域名,那么這個事情特別麻煩,能不能讓其自動反向代理后端VPS呢,用到proxy_pass和$host就可以輕松實現。

以下例子為了省事,以lnmp為安裝環境進行設置

修改前端VPS的nginx.conf文件,修改成以下內容:

server {listen 80;server_name $host;location / {proxy_pass http://www.31.gd/;proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;}

下面的一并修改吧。

location /.(php|php5)?${fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;}location /status {stub_status on;access_log off;}location /.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location /.(js|css)?${expires 12h;}

這樣就可以實現了前端VPS可以反向代理任意域名到后端VPS,只要將域名解析到前端VPS,后端VPS進行域名綁定,那么就可以直接訪問到了

一臺nginx帶多個域名多個tomcat情況的配置

多個域名,其中2個域名需支持泛域名解析:
1、www.abc.com
2、www.bcd.com
3、*.efg.com
4、*.hij.com

其中1,2,3為一臺tomcat,4為獨立tomcat。前端一臺nginx,通過配置多個虛擬主機來實現該部署。
進入/etc/nginx/conf.d目錄,所有虛擬主機的配置文件都在該目錄下存放,配置。

配置支持泛域名

 ## A virtual host using mix of IP-, name-, and port-based configuration#server {listen 81;server_name *.efg.com;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}## A virtual host using mix of IP-, name-, and port-based configuration#server {listen 81;server_name *.hij.com;location / {proxy_pass http://localhost:8081;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

泛域名解析關鍵為紅色部分,如果沒有紅色部分,后端8080及8081口對應的tomcat虛擬主機將無法獲得域名信息,導致后端tomcat無法獲取到對應的域名信息。

后端TOMCAT支持泛域名解析時,需要設置 host name 為 localhost 以支持泛域名指向。

Nginx 多域名配置

nginx綁定多個域名可又把多個域名規則寫一個配置文件里,也可又分別建立多個域名配置文件,我一般為了管理方便,每個域名建一個文件,有些同類域名也可又寫在一個總的配置文件里。

一、每個域名一個文件的寫法

首先打開 nginx域名配置文件存放目錄:/usr/local/nginx/conf/servers ,如要綁定域名www.web126.com 則在此目錄建一個文件:www.web126.com.conf 然后在此文件中寫規則,如:

 server{listen 80;server_name www.web126.com; #綁定域名index index.htm index.html index.php; #默認文件root /home/www/web126.com; #網站根目錄include location.conf; #調用其他規則,也可去除}

然后重起nginx服務器,域名就綁定成功了。

Nginx服務器重起命令:/etc/init.d/nginx restart。

二、一個文件多個域名的寫法

一個文件添加多個域名的規則也是一樣,只要把上面單個域名重復寫下來就ok了,如: 

server{listen 80;server_name www.web126.com; #綁定域名index index.htm index.html index.php; #默認文件root /home/www/web126.com; #網站根目錄include location.conf; #調用其他規則,也可去除}server{listen 80;server_name msn.web126.com; #綁定域名index index.htm index.html index.php; #默認文件root /home/www/msn.web126.com; #網站根目錄include location.conf; #調用其他規則,也可去除}

三、不帶www的域名加301跳轉

如果不帶www的域名要加301跳轉,那也是和綁定域名一樣,先綁定不帶www的域名,只是不用寫網站目錄,而是進行301跳轉,如:

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

四、添加404網頁

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

server{listen 80;server_name www.web126.com; #綁定域名index index.htm index.html index.php; #默認文件root /home/www/web126.com; #網站根目錄include location.conf; #調用其他規則,也可去除error_page 404 /404.html;}

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

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

學會上面四種規則方法,基本就可以自己獨立解決nginx 多域名配置問題了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 叉逼视频 | 怦然心动50免费完整版 | 成人mm视频在线观看 | 77成人影院 | 免费永久在线观看黄网 | 精品一区二区久久久 | 久久国产精品久久精品国产演员表 | 欧洲伊人网 | 国产精品91在线 | 国产精品一区二区三区在线看 | 成人偷拍片视频在线观看 | 久久精品视频免费观看 | 久久国产精 | 蜜桃视频在线免费播放 | 成年人激情在线 | 一级免费a| 爱福利视频 | av在线播放免费观看 | 国产精品99久久99久久久二 | www.成人在线 | 在线a亚洲视频播放在线观看 | a视频在线看 | 午夜影院在线免费观看 | 国产免费一级淫片 | 日韩视频在线一区二区三区 | 视频一区二区三区在线播放 | 国产在线精品91 | 欧美四级在线观看 | 成人午夜视屏 | 国产精品爱久久久久久久 | 一级免费黄色免费片 | 美女羞羞视频在线观看 | 免费毛片小视频 | 91精品国产91久久久 | 国产午夜亚洲精品午夜鲁丝片 | 色阁阁69婷婷 | 一级黄色影院 | 特级黄一级播放 | 久久草草影视免费网 | 羞羞视频免费视频欧美 | 91av网址 |