sh Nginx的屏蔽IP访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh Nginx的屏蔽IP访问相关的知识,希望对你有一定的参考价值。

屏蔽访问过于频繁的IP,编写脚本需要根据实际的nginx服务器log日志,取出访问IP和User-Agent,在nginx配置nginx.conf文件中添加内容:
```shell
include ./vhost/blocksip.conf;
```

编写脚本内容:blocksip.sh 
```bash
#!/bin/bash
nginx_home=/usr/local/nginx
log_path=/usr/local/nginx/logs
tail -n50000 /usr/local/nginx/logs/access.log \
|awk '{print $1,$12}' \
|grep -i -v -E "google|baidu|qq|so|sogou" \
|awk '{print $1}'|sort|uniq -c|sort -rn \
|awk '{if($1>1000)print "deny "$2";"}' >$nginx_home/conf/vhost/blocksip.conf
/usr/local/nginx/sbin/nginx -s reload
```

nginx允许和禁止某个IP或IP段的访问都建立在该访问可以正常通过iptable防火墙。当然,也可以把过滤出的ip直接加到iptables中,彻底拒绝该ip的所有请求。

参考 https://blog.yoodb.com/yoodb/article/detail/1332

以上是关于sh Nginx的屏蔽IP访问的主要内容,如果未能解决你的问题,请参考以下文章

Nginx限制ip访问

在Nginx服务器上屏蔽IP

nginx屏蔽某段IP某个国家的IP

Nginx 访问控制&屏蔽指定 user_agent

nginx屏蔽ip配置

nginx怎么禁止IP+非80端口