官网:Server names
翻译开始!
Server names are defined using the server_name directive and determine which server block is used for a given request.
nginx通过server_name指令来定义服务器名称,且server_name决定哪个server块被给定的请求使用。
See also “How nginx processes a request”.
也可以看 How nginx processes a request
They may be defined using exact names, wildcard names, or regular expressions:
也许会用准确的名字、通配符名称或者正值表达式来指定server_name。
server { listen 80; server_name example.org www.example.org; // exact names ... } server { listen 80; server_name *.example.org; // wildcard names ... } server { listen 80; server_name mail.*; // wildcard names ... } server { listen 80; server_name ~^(?<user>.+)\.example\.net$; // regular expressions ... }
When searching for a virtual server by name, if name matches more than one of the specified variants, e.g. both wildcard name and regular expression match, the first matching variant will be chosen, in the following order of precedence:
当通过名字来寻找一个虚拟服务器的时候,如果名字匹配到超过一个 指定变量(即server_name后面的参数)(例如,通配符名称和正则表达式都匹配到了),会选择第一个被匹配的变量。按一下优先顺序。
- exact name
- longest wildcard name starting with an asterisk, e.g. “
*.example.org
”- longest wildcard name ending with an asterisk, e.g. “
mail.*
”- first matching regular expression (in order of appearance in a configuration file)
1.确切的名称
2.更长的以星号*开头的通配符名称,例如:*.example.org
3.更长的以星号*结尾的通配符名称,例如:mail.*
4.第一个匹配的正则表达式,按照在配置文件中出现的顺序。