背景:
需要统一处理error的返回,其实呢就是nginx 默认的error 会是html格式,而且返回的不符合我们统一规范,所以需要在最后归一化。 当然也可以延伸到 在body_filter_by_lua中 修改返回内容,甚至指定返回内容
原理说明:
首先需要先声明!!HTTP1.1 之后基于流式处理的方式,body_filter_by_lua 基本在一个请求中会调用多次。 简单直白的理解就是流式输出,每次拿到了如果你要处理那么就处理,不处理就输出!!
git 源码链接 body_filter_by_lua
The input data chunk is passed via ngx.arg[1] (as a Lua string value) and the "eof" flag indicating the end of the response body data stream is passed via ngx.arg[2] (as a Lua boolean value).