Nginx设置禁止通过IP访问服务器并且只能通过指定域名访问

Posted mouseleo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx设置禁止通过IP访问服务器并且只能通过指定域名访问相关的知识,希望对你有一定的参考价值。

为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,需要在nginx上设置禁止通过IP访问服务器,只能通过域名访问。

最关键的一点是,在server的设置里面添加这么一行:

listen 80 default;

后面的default参数表示这个是默认的虚拟主机。

例如:别人如果通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500,或者是404。具体如下:

server {
       listen 80 default;
       server_name _;
       return 500;

}

 

也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
server {
    listen 80 default;
    rewrite ^(.*) http://www.domain.com permanent;
}


当然,按照上述设置,的确不能让别人通过ip访问服务器了,但是还应该开放一个或多个真实的希望被访问的域名配置,设置如下:

server {
       linten 80;
       server_name www.domain.com;
}

以上是关于Nginx设置禁止通过IP访问服务器并且只能通过指定域名访问的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 禁止IP访问 只允许域名访问

设置nginx禁止IP直接访问,只能通过指定的域名访问

nginx禁止ip登录,只允许域名访问

Nginx 禁止IP访问如何实现

nginx禁止IP访问

nginx限制访问域名,禁止IP访问