关于Nginx的server_name。
生活随笔
收集整理的這篇文章主要介紹了
关于Nginx的server_name。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Nginx中的server_name指令主要用于配置基于名稱的虛擬主機,server_name指令在接到請求后的匹配順序分別為:
1、準確的server_name匹配,例如:
?
server {listen 80;server_name domain.com www.domain.com;... }?
?
2、以*通配符開始的字符串:
server {listen 80;server_name *.domain.com;... }
3、以*通配符結束的字符串:
server {listen 80;server_name www.*;... }4、匹配正則表達式:
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塊中配置多個二級域名:
?
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/;
}
站點的目錄結構應該如下:
這樣訪問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的域名權重。
總結
以上是生活随笔為你收集整理的关于Nginx的server_name。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XP`开机速度慢的解决方法
- 下一篇: Web开发-数据格式选择