最近有个网站经常有人大量访问,看了一下是有人无聊写了个爬虫在爬,所以本文分享一下 NGINX 如何封禁某个 IP 或者 IP 段。当你的 NGINX 服务器想禁止某个 IP 或 IP 段访问时,可以通过配置文件来达到目的,本文介绍两种常用的方法。
隐藏
方法一:修改 Nginx 配置文件 nginx.conf
Nginx 配置访问 IP 可以修改 nginx.conf 文件,只需要在 server
中添加 allow
和 deny
的 IP 即可,如下:
server { listen 80; server_name localhost; allow all; deny 123.123.123.123; error_page 500 502 503 504 /50x.html; }
注意!上面的配置中 allow
必须在 deny
的前面配置,不然 allow
不生效。
Nginx 中允许或者拒绝某个 IP 访问是这么写的:
allow 192.168.0.1; deny 192.168.0.2;
如果你需要对整个 IP 段设置不允许访问,可以这么写:
deny 123.0.0.0/8; // 封 123.0.0.1~123.255.255.254 这个段的ip deny 123.123.0.0/16; // 封 123.123.0.1~123.123.255.254 这个段的ip deny 123.123.123.0/24; // 封 123.123.123.1~123.123.123.254 这个段的ip deny all; // 封所有ip
说明,allow
跟 deny
配置相同,如果需要开放某个 IP 段,只需要把上面的 deny
改成 allow
。
另外需要注意,该配置修改需要重启 Nginx 服务器才能生效。
方法二:修改网站配置文件 .htaccess
除了修改 Nginx 配置文件之外,还可以通过修改网站配置文件 .htaccess 来限制某 IP(段)访问,方法如下。
将以下内容保存为 .htaccess 文件,上传至网站根目录。如果原来已经存在 .htaccess 文件的,将以下内容加到该文件开头。
Order allow,deny allow from all deny from 123.123.123.123
如果要限制一个 IP 段,比如要限制 123.123.123.* 这个 C 段,则输入:
Order allow,deny allow from all deny from 123.123.123
以上内容表示拒绝 123.123.123 开头的所有 IP,其他 IP 允许。
如果要限制多个 IP 段,中间用空格隔开,如:
Order allow,deny allow from all deny from 111.111.111 111.222.222 111.333.333
说明,该配置不用重启 web 服务器,修改立即生效。
此外,该方法适用任何 web 网站,例如 IIS、Apache 网站。
推荐VPS
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 直达 |
CN2 | 2GB | 1核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 |
直达 | |
CN2 GIA-E (最推荐) |
1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 |
$49.99/季度 $169.99/年 |
直达 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 |
直达 | |
HK | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
直达 | |
TOKYO | 2GB | 2核 | 40GB | 0.5TB | 1.2Gbps | 日本东京 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
TOKYO | 4GB | 4核 | 80GB | 1TB | 1.2Gbps | $155.99/月 $1559.99/年 |
直达 | |
搬瓦工优惠码: |