我在不同的文件中有两个用于 nginx 的服务器部分。
第一个:
server {
server_name _;
...
}
第二个:
server {
server_name ~someRegex;
...
}
我有一些限制 - 我无法更改第一个服务器部分(即我无法编辑第一个文件)
文档说明了服务器名称优先级的以下内容:
- exact name
- longest wildcard name starting with an asterisk, e.g. “*.example.org”
- longest wildcard name ending with an asterisk, e.g. “mail.*”
- first matching regular expression (in order of appearance in a configuration file)
据我了解,server_name _
用作全能服务器。
所以当我有来自主机的请求匹配时,someRegex 请求由第一个服务器部分处理。有没有办法通过第二个服务器部分处理这些请求?
最佳答案
不完全是。
_
只会使 server_name
无效。参见 this document .
使 server
成为默认阻塞的原因是首先为给定端口定义或使用 listen ... default_server
修饰符定义。参见 this document .
因此,假设您的正则表达式有效并且第二个服务器 block 确实已由 nginx
安装,那么您的配置将按预期工作。重新加载 nginx
和/或使用
nginx -t
关于Nginx 服务器名称优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908189/