Hello!
2014-11-06 20:05 GMT-08:00 yang.yang:
> 我们在目前的应用中遇到这样一个问题,content阶段是采用proxy_pass 来获取的,但是我们需要在resp
> header中输出一个自定义的头,但这个头的
> 值是需要基于content的完整内容解析获取的,这样我们就不能在body_filter_by_lua中做了,因为这个时候header已经send了。不知对于这种情况,春哥有没有好的建议,除了将
> content阶段自己来掌控之外。谢谢
>
这种需求必然需要缓冲整个响应体的内容,所以无论如何都是代价比较高的需求。
使用 ngx_lua 模块时,代价最小的一种做法是使用 lua-resty-http-simple 这样的 Lua
库发起代理请求,此时也不必使用 ngx_proxy 模块。一定要使用 ngx_proxy 模块的话,可以使用子请求接口
ngx.location.capture. 无论如何,你都需要自己掌控 content 阶段。
Regards,
-agentzh