您的位置:首页 > 运维架构 > Nginx

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

2017-08-31 14:27 671 查看
我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了。下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行:

listen 80 default;


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

Nginx 禁止IP访问这个设置非常有用。

比如别人通过IP或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500。目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。

简单直接的修改方法,则可以修改nginx.conf 文件:

...
server {
listen 80;
server_name www.nbu.edu.cn;  #这里是你自己指定的域名
...
}

#直接禁止IP地址访问
server {
listen 80 default_server;
server_name _;
return 403;
}


上述方法存在一个问题,IP虽然不能访问,但是主url网址可能也会访问不了,或者访问为默认的index,例如:

www.nbu.edu.cn


解决的方法:

server
{
listen 80 default;
server_name _;
server_name www.edu.nbu.cn;
return 500;
}


加入该服务器名称,将域名也放进去,表示该域名不可以通过IP地址访问,这样就完成了,如有问题,请留言,谢谢!

注意:前面的default_server声明需要删除,否则回报错:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: