我在不同的文件中有nginx的两个服务器部分。
第一个:
server {
server_name _;
...
}
第二个:
server {
server_name ~someRegex;
...
}
我有一些限制 - 我无法更改第一个服务器部分(即我无法编辑第一个文件)
文档说明了有关服务器名称优先级的以下内容:
- 确切名称
- 以星号开头的最长通配符名称,例如“* .example.org”
- 以星号结尾的最长通配符名称,例如“邮件。*”
- 首先匹配正则表达式(按照配置文件中的出现顺序)
醇>
据我所知,server_name _
被用作全能服务器。
因此,当我收到来自主机的请求时,someRegex请求由第一个服务器部分处理。有没有办法处理第二个服务器部分的这些请求?
答案 0 :(得分:2)
不完全。
_
只是呈现server_name
无效。请参阅this document。
使server
块成为默认值的原因是首先为给定端口定义或使用listen ... default_server
修饰符定义。请参阅this document。
因此,假设您的正则表达式有效并且nginx
确实安装了第二个服务器块,那么您的配置将按预期工作。重新加载nginx
后检查错误日志和/或使用
nginx -t