我有两个 nginx 配置,一个是全局包罗万象的配置,没有设置应该处理任何请求的服务器名称。我得到了第二个配置,它有一个服务器名称集,只处理特定子域上的请求。
示例(不是真正的配置,但根本没有更多配置):
server {
listen 80;
root /www/live;
location
....
}
server {
listen 80;
server_name *.prelive.host.tld;
root /www/prelive;
auth_basic "Restricted";
auth_basic_user_file /etc/htpasswd;
location
....
}
但是,当我将第二个页面包含在配置中时,整个页面都会受到密码保护,而不仅仅是 prelive 页面。
任何想法可能导致第一个配置继承基本身份验证?
似乎 nginx 会“随机”选择其中一种配置作为上述设置中的默认配置。我们的解决方案是设置
代替
在默认配置上,因此 nginx 将始终为除匹配的服务器名称之外的任何内容选择该配置。