V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
yuedingwangji
V2EX  ›  NGINX

请教 nginx log_by_lua 过滤请求方法

  •  
  •   yuedingwangji · 2018-11-29 15:18:13 +08:00 · 2986 次点击
    这是一个创建于 2197 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,我们的日志时用 cloudflare 开源的一个工具来收集的, https://github.com/cloudflare/lua-resty-logger-socket/ 但最近看日志的时候发现收集了很多心跳检测的数据,感觉这些没什么用,浪费磁盘空间,所以想屏蔽掉这些数据的收集,看了一下, 这类健康检测的收集大部分请求方法都是 head, 所以想过滤一下,但是完全不懂 lua 脚本,只能来请教 v2 诸位大神了

    lua 大概内容如下

    if uri=='/api/global_visit_log_v2.php' then
      ngx.exit(200)
    end
    t['host']               = ngx.var.hostname or "-"
    t['server_name']        = ngx.var.server_name or "-"
    t['uri']                = uri or "-"
    t['args']               = ngx.var.args or "-"
    t['body_bytes_sent']    = ngx.var.body_bytes_sent or 0
    t['status']             = ngx.var.status or ""
    t['referer']            = ngx.var.http_referer or "-"
    t['user_agent']         = ngx.var.http_user_agent or "-"
    t['real_ip']            = real_ip
    t['response_time']      = ngx.var.upstream_response_time or 0
    t['logtime']            = ngx.time()
    

    我可以直接这样写么 if request_method=='head' then ngx.exit(200)

    还有,下面定义的这些变量是从 ngx 的请求体拿的么, ngx.var 是啥意思

    2 条回复    2018-12-14 14:03:22 +08:00
    yuedingwangji
        1
    yuedingwangji  
    OP
       2018-12-05 19:40:53 +08:00
    居然没人,伤心
    0x557
        2
    0x557  
       2018-12-14 14:03:22 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1105 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.