一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - 詳解Nginx虛擬主機配置中server_name的具體寫法

詳解Nginx虛擬主機配置中server_name的具體寫法

2019-11-11 14:24onlyzq Nginx

這篇文章主要介紹了Nginx虛擬主機配置中server_name的具體寫法,server_name服務器名是虛擬主機中必須配置的重要參數,需要的朋友可以參考下

server_name指令可以設置基于域名的虛擬主機,根據請求頭部的內容,一個ip的服務器可以配置多個域名。下面這些server_name的參數是有效的:

?
1
2
3
4
5
6
7
8
9
10
11
server_name zzvips.com;
server_name zzvips.com m.ythuaji.com.cn;
server_name *.zzvips.com;
server_name .zzvips.com;
 
server_name nginx.*;
 
server_name zzvips.com aspku.net brackley.org;
server_name localhost litchfield bleddington;
 
server_name "";

多個域名之間以空格分隔。nginx允許一個虛擬主機有一個或多個名字,也可以使用通配符"*"來設置虛擬主機的名字。上面的例子我們看到了很多特殊的地方:

第一組例子,首先定義server_name為zzvips.com,那么來自http://zzvips.com的請求就會發到該主機上。第二個例子配置了zzvips.com和m.ythuaji.com.cn,那么http://zzvips.com和//m.ythuaji.com.cn的請求會發到這個主機上。
*.zzvips.com和.zzvips.com是等同的配置,設置該主機處理所有來自zzvips.com的子域名,比如m.ythuaji.com.cn,blog.zzvips.com等
第二組server_name配置nginx.*,配置服務器處理所有以nginx.開頭的請求。例如,nginx.com,zzvips.com,nginx.net,nginx.baidu.com
接下來一組第一個server_name配置,設置主機處理來自三個域名的請求。nginx允許設置不是有效域名的名字。比如接下來這個配置我們可以看到三個不是有效域名的例子,localhost,litchfiled和bledington。nginx只查找請求的HTTP頭中的域名但并不判斷域名是否有效,這個例子中這些主機名可以配制在/etc/hosts中。當你在本機調試時使用非域名的主機名有時候更適合些。
最后一組例子,server_name設置為空的雙引號,它告訴nginx捕捉所有沒有hostname的請求,或者hostname沒有在其它server_name中指定的。

總結一下,server_name指令在接到請求后的匹配順序分別為:
1、準確的server_name匹配,例如:

?
1
server { listen 80; server_name domain.com www.domain.com; ...}

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

?
1
server { listen 80; server_name .domain.com;...}

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

?
1
server { listen 80; server_name www.; ...}

4、匹配正則表達式:

?
1
server { listen 80; server_name ~^(?.+).domain.com$;...}

nginx將按照1,2,3,4的順序對server name進行匹配,只有有一項匹配以后就會停止搜索,所以我們在使用這個指令的時候一定要分清楚它的匹配順序(類似于location指令)。
server_name指令一項很實用的功能便是可以在使用正則表達式的捕獲功能,這樣可以盡量精簡配置文件,畢竟太長的配置文件日常維護也很不方便。下面是2個具體的應用:

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

復制代碼 代碼如下:

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


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

復制代碼 代碼如下:

/data/wwwsite/domain.com/data/wwwsite/nginx.org/data/wwwsite/baidu.com/data/wwwsite/google.com


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

 

?
1
2
3
4
5
6
7
8
server {
listen 80;
server_name ~^(.+)?.domain.com$;
index index.html;
if ($host = domain.com){
rewrite ^ http://www.domain.com permanent;
}
root /data/wwwsite/domain.com/$1/;}

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

?
1
/data/wwwsite/domain.com/www//data/wwwsite/domain.com/nginx/

這樣訪問www.domain.com時root目錄為/data/wwwsite/domain.com/www/,nginx.domain.com時為/data/wwwsite/domain.com/nginx/,以此類推。
后面if語句的作用是將domain.com的方位重定向到www.domain.com,這樣既解決了網站的主目錄訪問,又可以增加seo中對www.domain.com的域名權重。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青草热久精品视频在线观看 | 亚洲国产精品牛在线 | 日本丰满www色 | 国产福利一区二区三区 | 五月天精品视频播放在线观看 | 暖暖在线日本 | 午夜第一页 | youzljzljzljzlj96| 日本无遮挡拍拍拍凤凰 | 青青在线视频免费 | 日韩欧美亚洲天堂 | 欧美18-19 | 无人区乱码区1卡2卡三卡在线 | 热久久免费视频 | 午夜精品久久久内射近拍高清 | 欧美一级视频在线 | 热99这里有精品综合久久 | 波多野结衣之高校教师 | 久久re这里精品在线视频7 | 日韩在线 中文字幕 | 国产大片免费在线观看 | 海角社区在线登录 | 国产欧美综合一区二区 | 欧美a级完整在线观看 | 国产91精品久久久久久久 | 成年人黄视频在线观看 | 精品视频在线免费看 | 精品国产一区二区在线观看 | 亚洲福利在线观看 | 国产农村乱子伦精品视频 | 视频在线视频免费观看 | 蜜色网| 四虎 2022 永久网站 | 97福利社| 母乳在线播放 | 国产va免费精品高清在线观看 | 无码国产成人777爽死在线观看 | 日韩一卡2卡3卡新区网站 | 精品亚洲综合在线第一区 | 男人看片网址 | 日韩亚洲国产欧美精品 |