Ngxin ServerName匹配规则

148 阅读1分钟

完整匹配

ServerName可以配置多个域名

server_name a.orgcomcn.top b.orgcomcn.top;

通配符匹配

server_name *.orgcomcn.top;

通配符结束匹配

server_name a.orgcomcn.*;

正则匹配

server_name ~^[0-9]+\.orgcomcn.top$;
正则匹配格式,必须以~开头,比如:server_name ~^www\d+\.example\.net$;。如果开头没有~,

则nginx认为是精确匹配。在逻辑上,需要添加^和$锚定符号。注意,正则匹配格式中.

为正则元字符,如果需要匹配.,则需要反斜线转义。如果正则匹配中含有{和}则需要双引号引用起来,

避免nginx报错,如果没有加双引号,则nginx会报如下错误:

directive "server_name" is not terminated by ";" in ...。

特殊匹配格式

server_name ""; 匹配Host请求头不存在的情况。

匹配顺序

1. 精确的名字
2. 以*号开头的最长通配符名称,例如 *.example.org
3. 以*号结尾的最长通配符名称,例如 mail.*
4. 第一个匹配的正则表达式(在配置文件中出现的顺序