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

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

posted @ 2020-07-08 10:34  yifanSJ  阅读(287)  评论(0编辑  收藏  举报