OpenResty
nginx
nginx log format
Nginx 陷阱和常见错误
静态资源服务
反向代理
nginx 缓存配置
SSL TLS 证书
listen指令
正则
server_name 指令
获取真实客户端地址的realip模块
nginx的常见问题
location
内核参数优化
nginx配置文件详解
http 请求处理时的11个阶段
11个阶段的处理顺序
rewrite模块
limit conn模块 对连接数做限制
limit_req 模块
access 模块 auth_basic
static模块提供的三个变量
http框架用户请求相关的变量
tcp 连接相关变量
nginx 系统变量
使用变量防盗链的referer 模块
客户端 keepalive
upstream变量
http 反向代理 proxy处理请求的流程
接收用户请求的方式
缓存
搭建websocket反向代理
openfilecache提升系统性能
openResty 安装
ngx_lua_waf
不重启 Nginx 容器的情况下重新加载配置文件
GEOIP2(即GeoLite2免费地理位置数据) - 数据库下载与自动更新
GEOIP2 在 NGINX/Openresty 上的应用(根据IP归属国家自动切换网站根目录&静态资源下载限速&禁止访问
banana waf
ngx_waf
一个完整的Nginx优化配置
openresty 共享内存代码示例
301 和 302 的区别
OpenResty 执行流程阶段
nginx反向代理调度算法
本文档使用 MrDoc 发布
-
+
首页
ngx_lua_waf
# ngx_lua_waf 资源 开源仓库:https://github.com/loveshell/ngx_lua_waf 使用说明:https://github.com/loveshell/ngx_lua_waf/blob/master/README.md # ngx_lua_waf 下载 ``` ## ngx_lua_waf 下载及目录结构 $ cd /usr/local/nginx/conf/vhost/ # 进入 vhost目录 $ wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip #下载 $ unzip master.zip #解压 $ mv ngx_lua_waf-master waf #移动并重命文件夹名字为 waf ``` 假设当前waf存放目录为 `/usr/local/nginx/conf/vhost/`; ``` root@localhost:/usr/local/nginx/conf/vhost/waf# tree -a . ├── .gitattributes ├── .gitignore ├── README.md ├── config.lua ├── init.lua ├── install.sh ├── waf.lua └── wafconf ├── args ├── cookie ├── post ├── url ├── user-agent └── whiteurl 1 directory, 13 files ``` # ngx_lua_waf 的配置文件说明 `config.lua` 是该waf的主配置文件,用以设置参数及对应行为,`on`即代表开启功能,`off`代表关闭功能; ``` RulePath = "/usr/local/nginx/conf/vhost/waf/wafconf/" #路径对应的是 wafconf 的位置; attacklog = "off" logdir = "/home/wwwlogs/limbopro.com/waf/" # 设置日志存放路径 博主设置在 nginx 下 waf UrlDeny="off" Redirect="off" CookieMatch="on" postMatch="off" whiteModule="off" black_fileExt={"php","jsp"} ipWhitelist={"127.0.0.1","62.11.132.44","12.65.27.75"} ipBlocklist={"1.0.0.1"} CCDeny="on" CCrate="100/60" html= ``` ![](/media/202305/2023-05-23_172414_2989520.5214404546407638.png) 其中 CCrate="100/60" 中的 `100/60` 代表一分钟(60秒)内同一页面刷新100次则封禁直到这一分钟结束,假设你在20秒刷了100次,则剩下的40秒将会被封禁; # 配置 nginx.conf 假设 nginx 的vhost文件夹路径假设为:/usr/local/nginx/conf/vhost/,在 limbopro.com.conf 的 http 段添加(即最顶部): ``` ##WAF 配置资源引用开始 lua_package_path "/usr/local/nginx/conf/vhost/waf/?.lua;;"; lua_shared_dict limit 20m; init_by_lua_file /usr/local/nginx/conf/vhost/waf/init.lua; access_by_lua_file /usr/local/nginx/conf/vhost/waf/waf.lua; ##WAF 配置资源引用结束 server { listen 443 ssl http2; listen [::]:80; server_name limbopro.com; ... ``` 重启 nginx,大功告成; vhost 文件夹的一些说明:Virtual Host,虚拟主机(Virtual Host)可以在一台服务器上绑定多个域名,架设多个不同的网站,一般在开发机或者要部署多个小网站的服务器上需要配置虚拟主机。nginx的虚拟主机配置其实也挺简单,为了使得配置文件清晰,可以改每一个虚拟主机建立一个配置文件,然后在主配置文件(nginx.conf)里使用include语句包含所有的虚拟主机配置文件。 # 测试结果 http://xx.xx.xx.xx/?s=../etc/passwd ![](/media/202305/2023-05-23_171206_7245830.05598734488402235.png)
admin
2023年5月23日 17:27
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码