nginx vhost 配置

nginx vhost 配置

这是我的 nginx 配置文件,允许它仅响应 domain1.com,而不响应 domain2.com

server {
    server_name  .domain1.com;
    root /var/www/;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:3000;
        proxy_redirect off;
    }
}

但是,这仍在 domain2.com 上监听。我这里遗漏了什么?任何帮助都非常感谢。

答案1

这是不可能的,至少这种方式不行。如果服务器收到的请求带有Host未在语句中配置的域的标头server_name,它将回退到默认服务器,即使server_name不匹配。

查看文档有关后备顺序的更多信息。

答案2

是的,SvenW 是正确的,您需要设置一个defaultvhost,如果这是所需的行为,则可能只需将其设置为返回 404,或者某种类型的保留页面。

相关内容