同时抄送给 openresty 邮件列表(https://groups.google.com/group/openresty
)。请加入此列表并在那里讨论这样的问题,谢谢合作!
2014-02-25 1:34 GMT-08:00 何振科:
>
> 春哥你好,我目前在做一个网页过滤,需要用正则表达式过滤网页的内容,但是nginx 中 arg[1]是分段的,
这是期望的行为。输入过滤器本来就是流式处理的,这样无论响应体的总大小有多大,nginx 都只使用常数大小的很小的内存。
如果你需要整个响应体数据,那你根本无需使用 output filter,直接使用 ngx.location.capture 发起子请求就完事了:
https://github.com/chaoslawful/lua-nginx-module#ngxlocationcapture
子请求的整个响应体都会返回在 res.body 里面。你想怎么玩都行。
理论上更高效的做法是对分块的数据流进行流式正则替换,就像我的 ngx_replace_filter 模块那样:
https://github.com/agentzh/replace-filter-nginx-module#readme
Regards,
-agentzh