Content #
语法:server_name name [..];默认:server_name “”; 配置块:server
server_name后可以跟多个主机名称,如servername www.testweb.com、download.testweb.com;。
在开始处理一个HTTP请求时,Nginx会取出header头中的Host,与每个server中的 server name 进行匹配,以此决定到底由哪一个 server块来处理这个请求。有可能一个 Host 与多个 server块中的 server_name都匹配,这时就会根据匹配优先级来选择实际处理的 server 块。
server_name 与 Host 的匹配优先级如下: 1)首先选择所有字符串完全匹配的server_name,如www.testweb.com。 2)其次选择通配符在前面的server_name,如*.testweb.com。 3)再次选择通配符在后面的server_name,如www.testweb.*尝会noiso 4)最后选择使用正则表达式才匹配的server_name,如~\.testweb\.com$。
如果Host与所有的server_name 都不匹配,这时将会按下列顺序选择处理的server 块。 1)优先选择在 listen 配置项后加入[default|default_server]的 server 块。 2)找到匹配listen 端口的第一个 server 块。
如果 server_name 后跟着空字符串(如server_name “;),那么表示匹配没有Host这个 HTTP 头部的请求。