通过lua将nginx请求状态码转变为自定义状态码
2021/4/19 7:27:13
本文主要是介绍通过lua将nginx请求状态码转变为自定义状态码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景:安全组同学使用固定user-agent去扫描我们的网站,造成告警误报,需要将相关扫描资源的状态码修改,避免无效告警
思路:在nginx请求的header_filter_by_lua阶段,将请求状态码修改为自定义状态码
直接上代码,将以下代码写入配置文件xxx.lua,在相对应的域名下引用就可以了:
header_filter_by_lua_file "xxx.lua";
local log_time = os.date("%Y-%m-%d %X",os.time()) local ngx_lua_ua_log = "/data/nginx/log/sec.lua.log" local status = ngx.var.status local user_agent = ngx.var.http_user_agent local host = ngx.var.host local function add_quote(str) return string.format('"%s"', str) end local function logging(log_file, msg) file = io.open(log_file, "a+") file:write(msg) file:flush() file.close() end if user_agent == "xxx" and ngx.status ~= 200 then ngx.status = "211" local msg = table.concat({ add_quote(log_time), add_quote(host), add_quote(user_agent), add_quote(ngx.status), "\n" }, " ") logging(ngx_lua_ua_log, msg) else return end
经过测试,所有以xxx的user-agent且状态码不为200的请求都修改为了”211“,具体情况,可以自己修改;
这篇关于通过lua将nginx请求状态码转变为自定义状态码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-29fail2ban nginx
- 2024-03-18install nginx proxy manager
- 2024-01-2444从零开始用Rust编写nginx,命令行参数的设计与解析及说明
- 2024-01-22比Nginx更好用的Gateway!
- 2024-01-17nginx daemon off
- 2023-12-30Nginx Vhost Traffic Status 是什么意思-icode9专业技术文章分享
- 2023-12-26使用nginx搭建creates.io镜像(稀疏索引)
- 2023-11-18centos7编译安装Nginx教程。
- 2023-11-02nginx启动命令和停止命令
- 2023-10-25Centos7系统Nginx负载均衡如何安装和配置?