这是我的 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 是正确的,您需要设置一个default
vhost,如果这是所需的行为,则可能只需将其设置为返回 404,或者某种类型的保留页面。