此问题与HTTP GET请求的处理有关。下面提到的主体是响应主体(不是请求主体)。
我正在寻找一种使用nginx的方法,以便根据检查结果在返回标头和响应之前检查整个响应正文。
我已经研究了子模块过滤器http://nginx.org/en/docs/http/ngx_http_sub_module.html,但是实现的模式不能出于我的目的重复使用。 我还研究了示例模块https://www.nginx.com/resources/wiki/extending/examples/body_filter/,但无法使该模块正常工作。从主体过滤器返回错误代码为时已晚,并且在发送200标头后,请求被卡住。
我要实现的目标如下: -保留客户要求并执行以下检查处理程序 (可以是异步处理程序)
- Receive the response header (do not forward it yet)
- Receive and inspect/parse the response body
- Depending on the result of the inspection: pass/fail
+ pass:
* send the response header to the client,
* send the response body buffers to the client
+ fail:
* send an error code response header to the client,
* discard the response body buffers
预先感谢