python控制nginx禁封ipnginx中的access.log最近有大量的用户访问,怎么样屏蔽掉在一定时间段内访问次数多的ip呢?测试准备:两个tomcat,一个nginx做均衡负载,服务器上装有python3python脚本#服务器每60s循环一次...
python控制nginx禁封ip
nginx中的access.log最近有大量的用户访问,怎么样屏蔽掉在一定时间段内访问次数多的ip呢?
测试准备:
两个tomcat,一个nginx做均衡负载,服务器上装有python3
python脚本
#服务器每60s循环一次,抓取到超过200次以上的ip地址写入rainbol_ip.conf文件中,重启nginx禁封生效
import time import datetime import os point = 0 while True: with open('access.log', encoding='utf-8') as f: if f: point_action = f.seek(point) all_ip = [] for i in f: ip = i.split("-")[0] all_ip.append(ip) point = f.tell() all_ip_set = set(all_ip) for i in all_ip_set: if all_ip.count(i) > 200: with open('rainbol_ip.conf','a+',encoding='utf-8') as f: f.write("deny " + i + "; # %s禁封\n" % datetime.datetime.now()) os.system("nginx -s reload") time.sleep(60)
新增加一个配置文件(可自定)和nginx.conf放在一个目录下 touch rainbol_ip.conf
把python脚本放在access.log目录中
nginx.conf中http{}或者server{}块中加入include rainbol_ip.conf;
测试开始:
重启nginx nginx -s reload
启动python脚本文件后台执行 python3 access.log &
使用jmeter压测,当一段时间后访问页面
查看禁封配置日志 cat rainbol_ip.conf
//屏蔽单个ip访问 deny IP; //允许单个ip访问 allow IP; //屏蔽所有ip访问 deny all; //允许所有ip访问 allow all; //屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令 deny 123.0.0.0/8 //屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令 deny 124.45.0.0/16 //屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令 deny 123.45.6.0/24 //如果你想实现这样的应用,除了几个IP外,其他全部拒绝, //那需要你在guolv_ip.conf中这样写 allow 1.1.1.1; allow 1.1.1.2; deny all;
单独网站屏蔽IP的方法,把include guolv_ip.conf; 放到网址对应的在server{}语句块,
所有网站屏蔽IP的方法,把include guolv_ip.conf; 放到http {}语句块。
参考地址https://blog.csdn.net/u013372487/article/details/51841364/
版权声明:本文原创发表于 博客园,作者为 RainBol?本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
本文标题为:使用python控制nginx禁封ip
- python中列表添加元素的几种方式(+、append()、ext 2022-09-02
- Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc) 2023-08-04
- python线程池ThreadPoolExecutor与进程池ProcessPoolExecutor 2023-09-04
- Python之路-Python中的线程与进程 2023-09-04
- CentOS7 安装 Python3.6 2023-09-04
- Python 保存数据的方法(4种方法) 2023-09-04
- python中defaultdict用法实例详解 2022-10-20
- windows安装python2.7.12和pycharm2018教程 2023-09-03
- 在centos6.4下安装python3.5 2023-09-04
- Python实现将DNA序列存储为tfr文件并读取流程介绍 2022-10-20