server_name
(上下文http ,server ,location
)
格式:
1. 具体指定的域名,可以写多个,第一个为主域名
注:正常情况下次级域名的请求不会请求转发到主域名下,使用命令 (server_name_in_redirect on
) 开启,正常情况下,这个指令是关闭状态, 开启后,如果发生请求转发,则跳转到主域名下的对应地址
2. 泛域名,即域名最前使用*
,或者域名最后使用*
3. 正则表达式形式的域名,正则表达式使用时,最前需要使用 ~符号
注:正则表达式可以使用()创建变量,如下所示:
```server{
server_name ~^(www\.)?(.+)$;
location /{root/site/$2;} #其中$2指的是匹配成功后server_name中(.+)部分的值
}
server{
server_name ~^(www\.)?(?<domain>.+)$;
location /{root/site/$domain;} #其中$domain指的是匹配成功后server_name中<domain>部分的值
}```
server
的匹配顺序:
1. 具体的域名
2. *
号在前的域名
3. *
号在后的域名
4. 正则表达式域名(若是多个正则表达式都满足,则使用排在最前的哪个)
5. 默认匹配域名 :default server
>>>> 所有的server
模块中的第一个
>>>> 在listen
指令中监听时,添加了default
的哪个server
注:在1 2 3中的顺序和配置中的排列顺序无关,4则哪个排在前面使用哪个