如何禁止通过IP地址直接访问网站

我有一个VPS的网站。

我遇到的问题是,当我input服务器的IP,它链接到网站。
即使inputmail.domain.com,它也是一样的。

如何禁用该function,以便访问者能够收到消息或被定向到域名?

我试图禁用IP和邮件logging在云耀斑,但没有奏效。

我的设置是:

VPS on Linux Debian Nginx no control panel just command line Cloudflare DNS setup with BIND 

你可以在别人之前添加一个服务器指令。

 server { listen 80; server_name _; return 404; } 

你可以使用重定向,nginx配置:

 server { listen 80; server_name IP_ADDRESS; return 301 http://YOUR.DOMAIN; } 
 server { listen 80 default_server; server_name ""; return 444; } 

您需要指定default_server参数,以便所有不可用的服务器请求都转到此server block ,并引发444 error

444:连接关闭,无响应

ref: https : //httpstatuses.com/444

您可以尝试在以下位置设置服务器IP地址:

 /etc/nginx/conf.d/default.conf 

所以看起来像这样:

 server { listen 80; server_name localhost IP.OF.VPS.HERE; 

然后你可以指定子域名虚拟主机,如:

 server { listen 80; server_name subdomain.domain.com; 

而主要的域名,如:

 server { listen 80; server_name www.domain.com domain.com; 

然后重新启动Nginx:

 /etc/init.d/nginx restart 

每个虚拟主机应该有自己的* .conf文件(为了更好的组织),如:

 /etc/nginx/conf.d/subdomain.domain.com.conf /etc/nginx/conf.d/domain.com.conf /etc/nginx/conf.d/default.conf 
 if ($http_host != "example.com") { return 301 example.com; } 

你可以返回任何你认为合适的错误。 错误列表可以在这里找到List_of_HTTP_status_codes

 server { listen xxxx:80; server_name xxxx; return 404; }