宝塔下nginx_waf的编译安装

316 字
2 分钟
宝塔下nginx_waf的编译安装

nginx_waf的官方文档和GitHub链接如下:

https://github.com/ADD-SP/ngx_waf/

https://add-sp.github.io/ngx_waf-docs/zh-cn/

先在宝塔中编译安装nginx,这里以1.27.4为例。

编译好后先将正常使用的Nginx文件进行备份,

cp /www/server/nginx/sbin/nginx /www/server/nginx/sbin/nginx.bak

然后查看当前NGINX编译的参数

/www/server/nginx/sbin/nginx -V

将./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-ng-1.3.0 --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-http_auth_request_module --add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master --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 --with-http_v3_module

我们将它改成:

--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-ng-1.3.0 --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-http_auth_request_module --add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master --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 --with-http_v3_module --add-module=/usr/local/src/ngx_waf

LuaJIT是编译所需的库,项目地址:[https://github.com/openresty/luajit2\](https://github.com/openresty/luajit2)

git clone https://github.com/openresty/luajit2.git
cd luajit2
make PREFIX=/usr/local/luajit
make install PREFIX=/usr/local/luajit

安装完成后将如下环境变量加入/etc/profile中,并执source /etc/profile

export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1

另外libinjection

git clone https://github.com/libinjection/libinjection.git libinjection-src \
&& cd libinjection-src \
&& ./autogen.sh \
&& ./configure --prefix=/www/server/nginx/src/libinjection \
&& make -j$(nproc) && make install \
&& export LIB_INJECTION=/www/server/nginx/src/libinjection \
&& cd /www/server/nginx/src

另外:可以使用 yum install uthash-devel 或 apt-get install uthash-dev 安装 uthash

最后运行:

./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-ng-1.3.0 --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-http_auth_request_module --add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master --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 --with-http_v3_module --add-module=/usr/local/src/ngx_waf
sed -i 's/^\(CFLAGS.*\)/\1 -fstack-protector-strong -Wno-sign-compare/' objs/Makefile
make

宝塔二进制文件在/www/server/nginx/中,先在面板暂停nginx,再复制替换:

cp objs/nginx /www/server/nginx/sbin/nginx

以上。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

宝塔下nginx_waf的编译安装
https://blog.qiui.net/posts/2025-05-30-nginx-waf-24/
作者
Q
发布于
2025-05-30
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Qiui
搞点好玩的.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签

文章目录