我有2个文件 proxy_pass :
server {
listen 80;
server_name www.domain1.fr;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
}
}
和
server {
listen 80;
server_name www.domain2.fr;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2369;
proxy_redirect off;
}
}
他们都很好。
现在,如果我通过其他域名转到此服务器(在我的DNS服务器上定义,定位相同的IP地址),例如。 www.domain3.fr,而不是404,我得到了与www.domain2.fr相同的结果!
我想这是因为最后一次location /
,但如果域名与server_name
不同,怎么办404错误?
答案 0 :(得分:1)
我已经多次回答这个问题,我想找到一种方法让它变得通用,这样我就可以在有问题的时候分享它。
如果您想看一下,其他答案
您可以在此参考链接How nginx processes a request
上阅读任何一项原因简单答案是一个小的服务器块来阻止它
server {
listen 80 default_server;
# return a code maybe or do any thing
return 404;
}
当然重新加载nginx以反映设置。
答案 1 :(得分:0)
好吧,我必须添加一个新配置:
server {
listen 80 default_server;
server_name _;
access_log off;
return 404;
}
成为“抓住一切” 资料来源:NGINX multiple server blocks with reverse proxy