VeryNginx 基于 lua_nginx_module(openrestry)
开发,实现了高级的防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。
VeryNginx 基于 OpenResty[^openresty],所以安装 VeryNginx 需要先安装好 OpenResty。但是VeryNginx 也支持安装在nginx中,但是需要lua-nginx-module,http_stub_status_module,http_ssl_module这3个模块的支持。碰巧的是,宝塔面板已经默认编译了这3个模块,所以我们只需要安装VeryNginx单个软件即可。
这篇文章就来谈谈如何在宝塔面板nginx环境中安装VeryNginx 防火墙,并且说说简单的防cc的设置。也算是对宝塔面板防cc的一个补充。
一:测试环境
宝塔面板7.0.3、nginx1.17.5、统:CentOS Linux 7.7.1908 (Core)
二:安装VeryNginx
github:https://github.com/alexazhou/VeryNginx
中文文档:https://github.com/alexazhou/VeryNginx/blob/master/readme_zh.md
克隆 VeryNginx 仓库到本地, 然后进入仓库目录,具体命令如下:
git clone https://github.com/alexazhou/VeryNginx.git cd VeryNginx python install.py install verynginx
安装完成的示例:
[root@daniao VeryNginx]# python install.py install verynginx ### copy VeryNginx files ... mkdir -p /opt/verynginx cp -r -f ./verynginx /opt/verynginx openresty not fount, so not copy nginx.conf chmod -R 755 /opt/verynginx/verynginx/configs *** All work finished successfully, enjoy it~
这里提示我们已经完成了VeryNginx的安装。
三:配置VeryNginx
根据官网的设置要求,我们需要设置 Nginx 配置文件,添加三条 Include 指令来实现功能,分别为:
- include /opt/verynginx/verynginx/nginx_conf/in_external.conf; #http 配置块外部
- include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; #http 配置块内部
- include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; #server 配置块内部
以上三条指令分别放在nginx配置文件的 http 配置块外部,http 配置块内部,server 配置块内部,在修改时请保留这三条。如果添加了新的 Server 配置块或 http 配置块,也需要在新的块内部加入对应的 include 行。
3.1设置Nginx配置文件
宝塔面板→ Nginx →设置 → 配置修改,将以下2条代码放到正确的位置。
此处为隐藏的内容!发表评论并刷新,方可查看发表评论
3.3重启Nginx
宝塔面板→nginx→服务→重载/重启Nginx:
至此就算正确安装了VeryNginx。
四:配置VeryNginx
VeryNginx 启动后,可以通过浏览器访问管理面板来查看状态以及进行配置。
管理面板地址为 http://网站域名/verynginx/index.html
。
默认用户名和密码是 verynginx
/ verynginx
。
登陆界面如下:
4.1设置cookie验证
尝试添加自定义动作,浏览器校验,设置个cookie验证上去。保存之后,去刷新你的网址,看看是否多了一个叫verynginx_sign_cookie的cookie值。如何设置看图:
我们现在刷新自己的网站看看是否多了verynginx_sign_cookie的cookie值,如图:
确实是看到了这个cookie,这样VeryNginx就算正常运行了。
4.2设置防cc
VeryNginx如何设置防cc的规则呢。在自定义动作→拦截频率中可以设置。如图:
4.3测试效果
我们保存之后,可以打开自己的网站测试下效果,如图:
防cc已经起作用了。我们是封禁了300秒,之后,会自动解封。
4.4注意事项
- 通过 VeryNginx 控制面板保存新配置之后,会立刻生效,并不需要 restart/reload Nginx。
- VeryNginx 把配置保存在
/opt/verynginx/verynginx/configs/config.json
里面。 - 状态页面图表默认带有动画效果,如果有卡顿,可以点右上角齿轮图标关掉动画效果
- 如果因为配错了什么选项,导致无法登录,可以手动删除
config.json
来清空配置,或者手动编辑这个文件来修复。
4.5修改用户名密码
配置→系统→用户,这里面可以修改看图:
修改之后保存。
4.6更新 VeryNginx
你只需要先 pull github 上最新的代码到本地,然后通过以下命令来进行更新:
- #更新 Verynginx
- python install.py update verynginx
- #更新 OpenResty
- python install.py update openresty
4.7一些错误解决
修改配置后,页面底部会出现一个浮动条,提示保存,在点击浮动条上的保存按钮之后,配置才会进行写入。如果遇到无法保存配置的问题,可能是文件目录权限的问题,设置成755 www就可以了,如图:
或者是nginx 设置的 client body 太小,导致请求体被缓存到文件,导致 lua 代码没有获取到请求体,保存时会提示请求失败
- 在 nginx.conf 中 http 部分增加一句,client_body_buffer_size 128k;
4.8总结
以上的方法只适合宝塔面板的安装,如果你多次折腾不成功,还是用宝塔面板的免费防火墙吧,或者是宝塔面板的收费防火墙。
VeryNginx可以设置浏览器验证功能,可以选择cookie或者JavaScript验证,可以有效避免被采集。其他设置请自行研究。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!