【Nginx】Nginx日志过滤 使用ngx_log_if不记录特定日志

ngx_log_if是Nginx的一个第三方模块。它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomLog env = XXX"

第一步:

先到Github下载ngx_log_if地址https://github.com/cfsego/ngx_log_if/

第二步:

安装第三方模块到Nginx。第三方模块的安装可以参考http://wiki.nginx.org/3rdPartyModules 使用--add-module添加解压后的ngx_log_if如下

./configure --add-module=/var/local/ngx_log_if-master

然后再编译安装Nginx即可。

第三步:

配置access_log_bypass_if到nginx.conf配置文件中

server {
location / {
access_log_bypass_if ($status = 404); #不记录404状态的所有日志信息
access_log_bypass_if ($uri ~* 'images'); #不记录uri中所有images目录下文件的日志信息
access_log_bypass_if ($uri = '/index.html'); #不记录uri为/index.html的日志信息
access_log_bypass_if ($host ~* 'tonv.cc'); #不记录host为tonv.cc的所有日志信息
}
}

重启Nginx即可过滤不显示特定的日志了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ngx_dynamic_limit_req_module可以结合redis来实现更灵活的限流策略,具体使用方法如下: 1. 安装redis 首先需要安装redis,并启动redis服务。 2. 安装nginx和ngx_dynamic_limit_req_module模块 安装支持ngx_dynamic_limit_req_module模块的nginx版本,并编译安装ngx_dynamic_limit_req_module模块。 3. 配置nginx.conf文件 在nginx.conf文件中添加如下配置: ``` http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location /api/ { access_by_lua_block { local redis = require "resty.redis" local red = redis:new() red:set_timeout(1000) local ok, err = red:connect("127.0.0.1", 6379) if not ok then ngx.log(ngx.ERR, "failed to connect to redis: ", err) return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) end local limit_key = ngx.var.binary_remote_addr .. ngx.var.uri local limit, err = red:incr(limit_key) if not limit then ngx.log(ngx.ERR, "failed to incr limit: ", err) return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) end if limit > 5 then ngx.exit(ngx.HTTP_TOO_MANY_REQUESTS) end red:set_keepalive(10000, 100) } proxy_pass http://backend; } } } ``` 其中,`access_by_lua_block`指令用于在nginx处理请求时执行Lua脚本,通过redis实现动态限流。 在Lua脚本中,首先连接redis,然后根据请求的来源IP地址和URI生成限流的key,使用redis的INCR命令递增限流计数器,如果计数器超过限制值,则返回429 Too Many Requests错误。 4. 重启nginx服务 修改完nginx.conf文件后,需要重启nginx服务才能生效。 以上就是ngx_dynamic_limit_req_module结合redis的使用方法,可以根据自己的需求对Lua脚本进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值