linux nginx安装HttpGuard防止CC攻击
之前说了安装verynginx来进行cc防御和防火墙,虽然功能强大,还有控制面板,但是个人就只是防御下cc,还是找个简单的好了。
HttpGuard有免费版本和商业版,商业版也是有控制面板的,现在好像是500一年吧,原价2000。如果不懂程序或者要更多功能的,可以去买授权。
免费版本还是在,只是防御CC攻击,还是可以的。
如果要商业版可以去官方网站:HttpGuard
HttpGuard也是基于lua的,所以还是要安装lua,如果没有安装的可以安装这里的来:linux nginx服务器安装verynginx防止CC攻击
一、下载HttpGuard免费版本
创建文件夹
mkdir HttpGuard
cd HttpGuard
下载解压
wget https://www.zhujitop.com/test/x/master.zip
unzip master.zip
转移文件夹
cp -r HttpGuard-master/ /usr/local/nginx/HttpGuard
是为了把HttpGuard放到nginx文件夹里面去
配置文件
在nginx.conf文件http区域内增加
lua_package_path "/usr/local/nginx/HttpGuard/?.lua";
lua_shared_dict guard_dict 100m;
lua_shared_dict dict_captcha 70m;
init_by_lua_file '/usr/local/nginx/HttpGuard/init.lua';
access_by_lua_file '/usr/local/nginx/HttpGuard/runtime.lua';
lua_max_running_timers 1;
(图1)
修改HttpGuard配置文件
打开 /usr/local/nginx/HttpGuard/config.lua
把basedir后面的路径修改了
这里也可以顺便修改下验证配置:
limitReqModules这句,图2中,代表10秒内超过10次刷新,访问,就出现验证码。
(图2)
安装验证码(好像可以不安装)
cd /usr/local/nginx/HttpGuard/captcha/
/usr/local/php/bin/php getImg.php
这个是用linux命令操作的,然后重启下nginx
测试,动态页面才有效,不是动态的,测试的时候,静态页面无所谓CC攻击。
HttpGuard的配置文件config.lua,还有很多参数,可以自己看着改。
nginx自带的模版或者基于其他模块,来进行CC防御,特别是对浏览器验证、ip判断,有很大误伤的可能性,但是简单防御还是可以的。
一个网站的正常用户浏览,不可能10秒就在同一个页面访问10次吧,除非有什么特殊活动。
HttpGuard不能和verynginx同时并存,测试了下,nginx就无法启动,期待他们都更好。
- 关于创建视图的问题(48天)
- 性能调优之redo切换频率(47天)
- 关于oracle中session跟踪的总结(56天)
- oracle中关于小数中0的格式化(55天)
- 关于trigger过滤最大值的问题(54天)
- oracle共享服务器配置汇总(53天)
- 关于drop user的cascade选项解惑(52天)
- ORACLE数据文件名导致的奇怪问题 (51天)
- linux下挂载新硬盘和分区的步骤 (50天)
- 通过shell脚本生成数据统计信息的报表 (笔记65天)
- 物化视图全量刷新的简单测试(63天)
- Golang语言社区--Go操作CSV文件
- TiDB 源码阅读系列文章(四)Insert 语句概览
- 食品安全溯源区块链解决方案探索
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python全栈(一)基础之11.函数(3)
- Python全栈(二)数据结构和算法之1.算法和数据结构引入
- Android开发(第一行代码 第二版) 常见异常和解决办法(基于Android Studio)(一)
- Python SQLite 基本操作和经验技巧(一)
- Python字典及基本操作(超级详细)
- Python matplotlab库使用方法及注意事项
- 超性感的React Hooks(三):useState
- 数据库编程 MySQL 技巧与经验
- Python 编程开发 实用经验和技巧
- 超性感的React Hooks(四):useEffect
- Python 库的安装及使用 常见错误异常及解决办法
- Kafka三种可视化监控管理工具Monitor/Manager/Eagle
- 超性感的React Hooks(五):自定义hooks
- 三、变量对象
- Java编程 经验技巧汇总