server {
listen 80;
server_name example.org www.example.org;
...
}
服务器名称说明:
server_name:指定服务器名称服务器名称原理: Nginx 根据请求的 Host 头选择虚拟服务器。当 Nginx 收到一个请求时,会根据请求的 Host 头选择匹配的服务器名称。
server {
listen 80;
server_name example.org *.example.org www.example.*;
...
}
通配符名称说明:
*.example.org:匹配所有以 .example.org 结尾的域名www.example.*:匹配所有以 www.example. 开头的域名通配符名称原理:
通配符名称用于匹配多个域名。通配符 * 可以匹配任意字符,但不能匹配 .。
server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
...
}
正则表达式名称说明:
~^(?<user>.+)\.example\.net$:使用正则表达式匹配域名正则表达式名称原理: 正则表达式名称用于匹配复杂的域名。正则表达式可以使用捕获组,捕获组可以在配置中使用。
server {
listen 80;
server_name example.org *.example.org ~^(?<user>.+)\.example\.net$;
...
}
混合名称说明:
example.org:精确匹配*.example.org:通配符匹配~^(?<user>.+)\.example\.net$:正则表达式匹配混合名称原理: 混合名称可以同时使用精确匹配、通配符匹配和正则表达式匹配。
server {
listen 80;
server_name "";
...
}
缺失名称说明:
server_name "":匹配没有 Host 头的请求缺失名称原理: 缺失名称用于匹配没有 Host 头的请求。
* 开头)* 结尾)服务器名称匹配顺序原理:
Nginx 按照精确匹配、通配符匹配(以 * 开头)、通配符匹配(以 * 结尾)、正则表达式匹配的顺序匹配服务器名称。