nginx 为其他域名提供服务,而不是我自己的域名

nginx 为其他域名提供服务,而不是我自己的域名

我在 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 将产生最少的流量。

相关内容