nginx.conf
------------------
server {
listen 80;
error_log /data/log/nginx/lua_error.log debug;
access_by_lua_file /data/www/lua/counter.lua;
location / {
#access_by_lua_file /data/www/lua/counter-ssdb.lua;
}
}
counter.lua
------------------
lua_error.log
------------------
2015/01/30 16:27:14 [debug] 3906#0: *265 [lua] counter.lua:3: 1
2015/01/30 16:27:14 [debug] 3906#0: *265 [lua] counter.lua:3: 1
2015/01/30 16:27:16 [debug] 3906#0: *265 [lua] counter.lua:3: 1
2015/01/30 16:27:16 [debug] 3906#0: *265 [lua] counter.lua:3: 1
预期:
1、当访问某个存在的文件时候,正常输出内容,同时执行 counter.lua (不输出任何内容)
实际:
1、当文件存时候,rewrite_by_lua_file、access_by_lua_file 均在日志中记录相同记录,证明执行了2次,无论放在http、server、location 范围内
2、当文件不存在时,执行1次
3、使用log_by_lua_file,执行1次,但因为无法使用 socket API 所以不能达到目的
所以请教,如何在保证正常文件输出的同时,非阻塞使用ngx_lua,并且可以使用诸如ngx_resty_redis等socket模块。