国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

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

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

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

下面我就來說說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塊中為一個站點配置多個二級域名 。

實際網站目錄結構中我們通常會為站點的二級域名獨立創(chuàng)建一個目錄,同樣我們可以使用正則的捕獲來實現(xiàn)在一個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指令將其賦值給一個命名的變量:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 工布江达县| 隆昌县| 金堂县| 辽源市| 长汀县| 韶关市| 平安县| 北碚区| 马关县| 东宁县| 崇左市| 互助| 安塞县| 晋宁县| 克东县| 苍南县| 金塔县| 砚山县| 通城县| 丰都县| 潼关县| 尼木县| 浠水县| 尚义县| 昌黎县| 明溪县| 曲靖市| 岗巴县| 百色市| 犍为县| 崇仁县| 乳山市| 肇东市| 淮安市| 徐汇区| 平乡县| 哈巴河县| 深圳市| 鄂温| 镇巴县| 英超|