我希望进行以下匹配:*-server.*.*
例如-dev-server.anydomain.anytld
在同一个文件中,另一个服务器:*-cloud.*.*
,例如-dev-cloud.anydomain.anytld
回退-在同一文件中-如果上面的非不匹配:*.*.*
,例如-dev.anydomain.anytld
或somethingelse.anydomain.anytld
这就是我现在拥有的不起作用的东西:
server {
listen 80;
server_name ~(server)*$;
}
server {
listen 80;
server_name ~(cloud)*$;
}
server {
listen 80;
server_name *.*.*$;
}
你可以用这个工具来处理它https://nginx.viraptor.info/
感谢
您的正则表达式无效。
要匹配*-server.*.*
,请使用:
server_name ~-server.[^.]+.[^.]+$;
要匹配*-cloud.*.*
,请使用:
server_name ~-cloud.[^.]+.[^.]+$;
您不需要server_name
语句来匹配任何其他语句,只需使用:
listen 80 default_server;
此外,Nginx具有通配符语法和用于server_name
指令的正则表达式语法。他们有不同的评估规则。上面的示例使用正则表达式,这些表达式按顺序求值,直到找到匹配的表达式为止。有关详细信息,请参阅本文档。