Nignx(二) server_name 规则

1.确切的server_name匹配

server {
    listen       80;
    server_name  www.luwen.cc luwen.cc;
    ...
}

2.以*通配符开始的最长字符串

server {
    listen       80;
    server_name  *.luwen.cc;
    ...
}

3.以*通配符结束的最长字符串

server {
    listen       80;
    server_name  www.*;
    ...
}

这两条有两个特别要注意的事项:
通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,“www.*.luwen.cc”和“w*.luwen.cc”都是非法的。
4.匹配正则表达式

server {
    listen       80;
    server_name  ~^(.+)-www.luwen.cc$;
    ...
}

server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能.nginx使用的正则表达式兼容PCRE。为了使用正则表达式,虚拟主机名必须以波浪线“~”起始否则该名字会被认为是个确切的名字:
如上4

如果表达式含星号,则会被认为是个通配符名字(而且很可能是一个非法的通配符名字)。不要忘记设置“^”和“$”锚点,语法上它们不是必须的,但是逻辑上是的。同时需要注意的是,域  名中的点“.”需要用反斜线“”转义。含有“{”和“}”的正则表达式需要被引用,

原文地址:https://www.cnblogs.com/yifanSJ/p/13265464.html