我在 nginx 将其他域名的流量传递到我的网站时遇到了一些问题。
似乎“fb.citroen.nl”的 DNS 设置错误(对我的服务器而言)。我想在 nginx 级别阻止除 bviaene.sanderdeclerck.be 和 www.bviaene.sanderdeclerck.be 之外的所有流量,以减少服务器负载。
搜索后,我发现应该在 /etc/nginx/sites-enabled/default 中完成此操作。我认为设置正确,但访问 fb.citroen.nl 的流量仍然显示我的网站。
这是我的/etc/nginx/sites-enabled/default:
# bviaene
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name bviaene.sanderdeclerck.be www.bviaene.sanderdeclerck.be;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
有人知道我做错了什么吗?
编辑:我确实使用“sudo nginx reload -s”重新加载了 nginx
答案1
您正在做相反的事情:通过该default_server
选项,您可以告诉nginx
将此server
块用于所有内容,包括错误的域。
相反,您需要另一个服务器块来处理您未明确配置的所有域。类似这样的内容(当然您必须default_server
从自己的server
块中删除):
server {
listen 80 default_server;
server_name _;
return 444; # Will close the connection immediately.
}
或者,您可以为此配置错误页面或重定向,但返回代码 444 将产生最少的流量。