nginx 服务其他域然后我自己的

San*_*rck 0 ubuntu 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;
        }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

编辑:我确实用'sudo nginx reload -s'重新加载了nginx

Sve*_*ven 5

您正在做相反的事情:通过default_server选项,您告诉nginx将此server块用于所有内容,包括错误的域。

相反,您需要另一个服务器块来处理您未明确配置的所有域。像这样的东西(当然你必须default_server从你自己的server块中删除):

server {
  listen      80 default_server;
  server_name _;
  return      444; # Will close the connection immediately. 
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以为此配置错误页面或重定向,但返回代码 444 将产生最少的流量。