0

0

ubuntu Install nginx Lua and configure waf

DDD

DDD

发布时间:2025-02-04 12:18:10

|

906人浏览过

|

来源于php中文网

原创

ubuntu install nginx lua and configure waf

一、安装ngx_devel_kit

cd /opt
git clone https://github.com/simplresty/ngx_devel_kit.git && cd ngx_devel_kit && git checkout master

二、安装lua-nginx-module

cd /opt
git clone https://github.com/openresty/lua-nginx-module.git && cd lua-nginx-module && git checkout master

三、安装Lua环境 (Luajit)

cd /opt
git clone http://luajit.org/git/luajit-2.0.git && cd luajit-2.0 && git pull
make && make install

四、设置Lua环境变量

Contentfries
Contentfries

将长视频改造成更加引人注目的短视频

下载
cd /opt/nginx-1.12.2  # 请替换为你的Nginx安装路径
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0

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

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

六、安装并配置ngx_lua_waf

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~~]]  --警告内容,可在中括号内自定义

请记得将 /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 文件中的配置。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

227

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

490

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

496

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

222

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

329

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3505

2024.08.07

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

791

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

407

2023.12.28

桌面文件位置介绍
桌面文件位置介绍

本专题整合了桌面文件相关教程,阅读专题下面的文章了解更多内容。

0

2025.12.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery  红蓝两方投票功能实战教程
jQuery 红蓝两方投票功能实战教程

共8课时 | 2.3万人学习

传智播客Swift基础视频教程
传智播客Swift基础视频教程

共40课时 | 7.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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