Hello!
On Thu, Sep 18, 2014 at 2:30 AM, Shadowlong Chang wrote:
> 再次测试了一下 目前发现问题存在于:
> 使用 lua ngx.var.xxx = xxx 给 nginx set xxx 'xxx'; 赋值之后, 可以使用echo打印出来
> 但是无法在rewrite当中使用, 使用的时候会全部为空.
>
应当是指令的运行顺序给搞错了吧?建议阅读对应的 nginx 教程:
http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
值得一提的是,
1. 不能在同一个 location {} 中使用 content_by_lua 和 echo 指令,因为这两条指令分别对应两个
content handler(或者说内容处理程序),而 nginx 在设计上一个 location 里只允许一个 content
handler,所以另一个会被自动丢弃。这在上面的中文教程中有详细的讨论。
2. content_by_lua 总是运行在 set_by_lua 之后,无论书写顺序如何。类似地,echo 也总是在
set_by_lua 之后运行。这与 nginx 的请求处理阶段有关,在上面的教程中也有详细的讨论。
Regards,
-agentzh