nginx vhost 站点优先级

nginx vhost 站点优先级

我寻求一些帮助来弄清楚为什么我的 nginx 以这种方式对网站进行优先级排序。我的虚拟主机中有服务器块:

server { #site 1
    listen 80;
    server_name site1.testing.domain.com$;
    root /var/www/site1/web;
    # further config
}

server { #site 2
    listen 80;
    server_name ~^(www\.)?(?<sname>.+?).testing.domain.com$;
    root /var/www/$sname/public;
    # further fonfig
}

根据 nginx 文档,它应该优先考虑完全匹配的域,但是当我继续http://site1.testing.domain.com它从站点 2 加载配置。(如果我删除动态子域的配置,则站点 1 配置可以正常工作)。

有人可以解释一下我做错了什么或者为什么 nginx 会这样做吗?

答案1

我的猜测:第一个变体不匹配,因为$在末尾server_name,这是无效的,因为这不是一个正则表达式。

相关内容