Hello!
2015-07-10 14:50 GMT+08:00 lisbitid:
> 现在遇到个问题,使用content_by_lua
> 'ngx.say(ngx.now())',在nginx配置好缓存和访问路径后,每次请求配置好的url,返回的时间都是不同的,这说明lua脚本不能使用nginx的缓存吗?
> location ~ ^/redis/(.*) {
> proxy_cache cache_cps;
> proxy_cache_valid 200 304 5m;
> proxy_cache_key $uri$is_args$args;
> proxy_read_timeout 1800;
> proxy_pass_header Server;
> proxy_set_header Host $http_host;
> proxy_redirect off;
> default_type 'text/plain';
> set $operation $1;
> content_by_lua 'ngx.say(ngx.now())';
> expires 5m;
> }
>
出于显然易见的原因,proxy_cache 只对使用了 proxy_pass 指令的 location
才有效,它不可能作用于其他模块的指令(当然,ngx_srcache 模块是一个故意的例外,可作用于任意模块产生的响应)。
建议你直接在 Lua 内部进行缓存,比如使用共享内存字典。这一般要比 nginx 的 proxy_cache 高效得多,因为不会引入额外的系统调用。
Regards,
-agentzh