nginx如何禁止使用ip访问网站

发布时间:2020-02-18编辑:脚本学堂
本文介绍了nginx禁止以ip直接访问网站的方法,nginx禁止使用ip访问网站的配置教程,nginx禁止某个IP访问站点的设置方法,供大家学习参考。

nginx禁止使用ip访问网站

设置允许使用IP访问网站。
 

server {
    listen       80;
    server_name  "";
}
 

绑定了一个空的主机头,于是任意主机头,只要是指向这个IP的都可以打开网站了。

如果需要nginx禁止ip访问网站,可以定义如下主机,丢弃这些请求:
 

server {
    listen       80;
    server_name  "";
    return       444;
}

在这里,设置主机名为空字符串以匹配未定义“Host”头的请求,而且返回了一个nginx特有的,非http标准的返回码444,它可以用来关闭连接。
从0.8.48版本开始,这已成为主机名的默认设置,所以可以省略server_name "",即如下的配置即可:
 

server {
    listen       80;
    return       444;
}

nginx禁止某个IP访问站点的设置方法

利用nginx的ngx_http_access_module 模块设置允许/禁止哪些ip或ip段访问站点。

首先,创建blocksip.conf配置文件:
 

deny 95.105.25.181;

保存。

在nginx的配置文件nginx.conf中加入:include blocksip.conf;

重启一下nginx的服务:/usr/local/nginx/sbin/nginx -s reload 就可以生效了。

blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问(参考:linux/linuxjinzhiipfangwen/ target=_blank class=infotextkey>linux禁止ip访问):
 

deny IP;
allow IP;

# block all ips
deny all;
# allow all ips
allow all;

其中网段的写法:192.168.1.0/24这样的形式。