首页 > 系统教程 > LINUX > 正文

ubuntu Install nginx Lua and configure waf

DDD
发布: 2025-02-04 12:18:10
原创
895人浏览过

ubuntu install nginx lua and configure waf

一、安装ngx_devel_kit

<code class="bash">cd /opt
git clone https://github.com/simplresty/ngx_devel_kit.git && cd ngx_devel_kit && git checkout master</code>
登录后复制

二、安装lua-nginx-module

<code class="bash">cd /opt
git clone https://github.com/openresty/lua-nginx-module.git && cd lua-nginx-module && git checkout master</code>
登录后复制

三、安装Lua环境 (Luajit)

<code class="bash">cd /opt
git clone http://luajit.org/git/luajit-2.0.git && cd luajit-2.0 && git pull
make && make install</code>
登录后复制

四、设置Lua环境变量

《HTML5 Realtime and WebSocket Code Lab》
《HTML5 Realtime and WebSocket Code Lab》

《HTML5 Realtime and WebSocket Code Lab》

《HTML5 Realtime and WebSocket Code Lab》 363
查看详情 《HTML5 Realtime and WebSocket Code Lab》
<code class="bash">cd /opt/nginx-1.12.2  # 请替换为你的Nginx安装路径
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0</code>
登录后复制

五、编译Nginx (假设你已完成Nginx的编译安装)

<code class="bash">cd /opt/nginx-1.12.2/ # 请替换为你的Nginx安装路径
./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads --with-pcre=/opt/pcre-8.38 --with-zlib=/opt/zlib-1.2.11 --with-openssl=/opt/openssl-1.0.2n --add-module=/opt/ngx_devel_kit --add-module=/opt/lua-nginx-module --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB
make
mv /usr/sbin/nginx /usr/sbin/nginx.old #备份旧的nginx
cp objs/nginx /usr/sbin/nginx # 复制新的nginx可执行文件
# 确保nginx -t 命令指向正确的nginx可执行文件路径 (例如,修改Makefile中的路径)
make upgrade</code>
登录后复制

六、安装并配置ngx_lua_waf

<code class="bash">cd /etc/nginx/
git clone https://github.com/loveshell/ngx_lua_waf.git && cd ngx_lua_waf && git checkout master

# 编辑nginx.conf文件,在http块中添加以下配置:
vim /etc/nginx/nginx.conf
http {
    ...
    lua_package_path "/etc/nginx/ngx_lua_waf/?.lua";
    lua_shared_dict limit 10m;
    init_by_lua_file /etc/nginx/ngx_lua_waf/init.lua;
    access_by_lua_file /etc/nginx/ngx_lua_waf/waf.lua;
    ...
}

# 配置waf规则文件
vim /etc/nginx/ngx_lua_waf/config.lua
RulePath = "/etc/nginx/ngx_lua_waf/wafconf/"  --规则存放目录
attacklog = "on"  --是否开启攻击信息记录,需要配置logdir
logdir = "/home/wwwlogs/"  --log存储目录,需要nginx用户的可写权限。日志文件名称格式如下:虚拟主机名_sec.log
UrlDeny = "on"  --是否拦截url访问
Redirect = "on"  --是否拦截后重定向
CookieMatch = "on"  --是否拦截cookie攻击
postMatch = "on"  --是否拦截post攻击
whiteModule = "on"  --是否开启URL白名单
black_fileExt = {"php","jsp"}  --填写不允许上传文件后缀类型
ipWhitelist = {"127.0.0.1"}  --ip白名单,多个ip用逗号分隔
ipBlocklist = {"1.0.0.1"}  --ip黑名单,多个ip用逗号分隔
CCDeny = "on"  --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCrate = "100/60"  --设置cc攻击频率,单位为秒. 默认1分钟同一个IP只能请求同一个地址100次
html = [[Please go away~~]]  --警告内容,可在中括号内自定义</code>
登录后复制

请记得将 /opt/nginx-1.12.2/opt/pcre-8.38/opt/zlib-1.2.11/opt/openssl-1.0.2n 替换成你实际的安装路径。 完成配置后,重启Nginx使其生效。 /home/wwwlogs/ 目录需要提前创建并赋予nginx用户写入权限。 请根据实际情况修改 config.lua 文件中的配置。

以上就是ubuntu Install nginx Lua and configure waf的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号