2013年7月29日 星期一

Scripting Nginx with Lua (lua-nginx-module) 筆記 @ Linux

最近常用 nginx 開發服務,接著又碰碰 lua 的部分,十分彈性。接下來,移植到 ARM 裝置後,就開始進入 debug 模式 XD 需要追蹤一些 requests 的流向,又想到 lua 啦

nginx-test.conf

  location /lua {
    default_type 'text/plain';
    content_by_lua '
        local currtime = ngx.localtime()
        local file = io.open("/tmp/nginx_lua.log", "a");
        file:write(currtime, "\\t", ngx.var.uri, "\\n");
        file:write("\\t", ngx.var.args, "\\n");
        file:close();

        ngx.print(currtime, "\\n");
        ngx.print(ngx.var.uri,"\\n");
        ngx.print(ngx.var.args,"\\n");
        --ngx.print(ngx.var.request_body, "\\n");
    ';
  }


/tmp/nginx_lua.log:
2013-07-29 04:19:07     /lua
        a=1&b=c&d


Web:
2013-07-29 04:19:07
/lua
a=1&b=c&d


如此一來,當 request 進來時,可以查看 /tmp/nginx_lua.log 看看到底走了幾個 requests,留意項目:

  • 在 content_by_lua 中,要印出 newline 必須用 ngx.print( "\\n" ) ,但如果是在 access_by_lua_file 中,只需 ngx.print( "\n" ) 即可。
  • 註解是用 "--" 而非用 "#" 或 "//" 開頭

沒有留言:

張貼留言