主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
ngx_waf,新开发的便捷高性能的Nginx防火墙模块。 ngx_waf 的优点包括:
功能齐全:“网络应用防火墙”的所有基本功能。
易于安装:缺少依赖项时会自动提供解决方案。
易于使用:配置说明简单易懂,不用看文档也能猜到是什么意思。
高性能:经过更极端的测试,启动该模块后RPS(每秒请求数)降低了约4%。测试描述和结果请参考文档。
1.简介
项目:https://github.com/ADD-SP/ngx_waf/
2.部署方式一
本文采用两种方式部署模块,首先介绍常规的静态编译方式。另外,作者还提供了Docker的安装方法,但不在本文讨论范围内。
2.1进入宝塔面板的nginx目录
cd /www/server/nginx/sbin/
2.2备份宝塔nginx
cp nginx nginx.bak
2.3 查看当前nginx加载位置的模块,这些模块在编译加载的PageSpeed模块时仍然需要加载(以下路径为宝塔默认nginx路径,请更改其他面板的路径自己确定)进入nginx的编译目录,命令如下:
cd /www/server/nginx/src
2.4 查看宝塔编译的nginx加载模块。这些模块在重新编译和加载新模块时仍然需要加载
nginx -V
注意这个命令是大写的V,如果小写的v不显示模块,这里会显示所有编译好的模块。将 ./configure arguments: 后的内容复制到记事本以备后用。莫涛来了:
--user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/ nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/ server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with- http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with- ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src /nginx-dav-ext-module
2.5 添加ngx_waf防火墙模块,并在所有模块的末尾添加以下模块。
--add-module=/www/server/nginx/src/ngx_waf --with-cc-opt='-std=gnu99'
2.6 比如如果是宝塔,直接按如下回车即可。
./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www /server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl= /www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module- -with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module- -with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/ nginx/src/nginx-dav-ext-module --add-module=/www/server/nginx/src/ngx_waf --with-cc-opt='-std=gnu99'
2.7 以上命令执行完毕后,输入编译命令如下:
制作
编译安装过程大概需要5分钟,还是有点长。完成后,将系统中原有的nginx替换为重新编译生成的nginx文件。
2.8停止nginx
服务nginx停止
2.9删除原来的nginx,操作前请确保你的nginx已经备份
rm -rf /www/server/nginx/sbin/nginx
2.10复制刚编译好的nginx
cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/
2.11启动nginx
服务nginx启动
2.12 使用nginx -V命令检查模块是否完整。编译成功的效果如下:
3.部署方式二
这是一个编译模块的方法。
3.1 如果安装nginx,需要从软件商店卸载,然后重新安装。注意要选择编译方式安装。
3.2选择自定义安装模块,看图:
注意具体参数填写如下:
模块名称:ngx_waf
模块描述:ngx_waf
模块参数:
--add-module=/www/server/nginx/src/ngx_waf --with-cc-opt='-std=gnu99'
前脚本:
mkdir -p /www/server/nginx/src cd /www/server/nginx/src git clone -b master https://github.com/ADD-SP/ngx_waf.git cd ngx_waf git clone https:/ /github.com/libinjection/libinjection.git inc/libinjection
3.3 编辑好后提交,如图:
提交后,等待安装成功。
3.4 如果遇到错误,一般就是这个错误,
错误:在 /root/ngx_waf 中添加模块检查 uthash 库...未找到 ./configure:错误:ngx_http_waf_module 模块需要 uthash 库。
此错误表示缺少 uthash 库。通过 yum 或 apt 安装。
centos: yum install uthash-devel ubuntu: apt install uthash-dev
3.5 安装成功效果如下: nginx -V 检查! !看到 ngx_waf 模块现已可用,您就大功告成了。
配置参数:--user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www /server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl= /www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module- -with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module- -with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/ nginx/src/nginx-dav-ext-module --add-module=/www/server/nginx/src/ngx_waf --with-cc-opt='-std=gnu99'
4.网站配置及效果展示
4.1 如果你没有网站,可以新建一个,点击宝塔的网站配置文件,在服务器部分找个地方放。显示代码如下: 此代码启用waf自带的5秒屏蔽功能。
waf on; # 是否启用模块waf_rule_path /www/server/nginx/src/ngx_waf/assets/rules/; # 模块规则 waf_mode STD !CC; # 开启普通模式,关闭CC保护 waf_cache capacity=50; # 缓存在uri=/under-attack.html上配置waf_under_attack; # 配置5秒盾
4.2 以上需要注意,把测试用的5秒屏蔽html文件复制到你站点的根目录:
cp /www/server/nginx/src/ngx_waf/assets/under-attack.html /www/wwwroot/imotao.com
如果不需要命令,直接按照路径复制这个文件到你网站的根目录即可。
4.3 测试效果,如果配置正确,此时打开网站,会有5秒的屏蔽效果提示。
当然,这只是一个静态页面。你可以随意修改。如果有特别好的修改,不妨贡献一份。
5.终于
以上教程简单展示了接下来5秒开启屏蔽功能。本教程基于宝塔部署。有两种方法。建议使用第二种方法,但方法取决于您的需要。
其他更多功能请看官方文档:
https://add-sp.github.io/ngx_waf/zh-cn/advance/directive.html
这几篇文章你可能也喜欢:
- 暂无相关推荐文章
本文由主机参考刊发,转载请注明:宝塔面板安装ngx_waf,高性能Nginx防火墙模块自带类似cf的5秒防护罩,抵御cc攻击 https://zhujicankao.com/65964.html
评论前必须登录!
注册