nginx server_name匹配順序


server_name可為IP/domain/localhost/null等任何字符串(字符串server_name也可以用來匹配),注意各個 server 塊的順序。

1.如果只有一個server,server_name可以任意起(可以為IP/域名/任何字符串),則不論用什么訪問(IP/域名/字符串),不論server_name是否匹配,都匹配到此server;

2.有多個server,如果server_name可以匹配到任何一個server的server_name,則使用此server,否則匹配到第一個server塊,不論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指令)。


免責聲明!

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



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