Hello!
On Wed, Aug 14, 2013 at 5:41 AM, linbo liao wrote:
> errlog
> 2013/08/14 13:37:19 [error] 18583#0: *3 attempt to set ngx.status after
> sending out response headers, client: 127.0.0.1, server: localhost, request:
> "GET /foobar/ HTTP/1.1", host: "localhost:8080"
>
> 看错误日志,是因为flush调用后,sending out response headers了
>
> 为什么response为空,调用flush后,也会sending out response headers呢?
在当前版本的 ngx_lua 中,ngx.flush() 和 ngx.say() 及 ngx.print() 一样,当响应头尚未发送时,便自动触发响应头的发送。
ngx.flush() 在这种情况下,直接返回一个错误似乎更加稳妥,所以我刚刚提交了一个补丁到 ngx_lua 的 master:
https://github.com/chaoslawful/lua-nginx-module/commit/4042f7bd
欢迎测试 :)
Thanks!
-agentzh