Nginx server_name 中的破折号(-)可能存在错误

Nginx server_name 中的破折号(-)可能存在错误

以下 Nginx(v 1.2.1)配置

server {
    listen 80;
    server_name aaa.example.com;
    root /var/www/aaa;
}

server {

    listen 80;
    server_name hello-world.example.com;
    root /var/www/hello;
}

因为第二台服务器的 server_name 包含dash-),所以 nginx 会一直打开第二台服务器(无论你访问 hello-world.example.com 还是 aaa.example.com)

我通过重命名hello-world来修复它helloworld(删除破折号解决了该问题)。

这不是 Nginx 的一个 bug 吗?

答案1

这有点牵强,但请尝试http在 nginx 配置的上下文中添加此行:

server_names_hash_bucket_size 64;

然后重新启动 nginx 并查看名称是否-有效。

相关内容