http – Nginx proxy_cache_key $request_body被大型请求体忽略

我使用nginx作为反向代理,我希望它缓存POST请求.我的后端已正确配置为POST请求返回适当的缓存控制头.在nginx我配置了:

proxy_cache_methods POST;
proxy_cache_key "$request_method$request_uri$request_body";

这适用于小型HTTP POST请求.但是我开始注意到对于大型请求(例如文件上传),似乎在proxy_cache_key中忽略了$request_body.当包含文件上载的表单使用完全不同的数据提交两次时,nginx将返回缓存的结果.

什么可能导致这个?如何配置nginx以在proxy_cache_key中使用$request_body(或$request_body的哈希),即使对于大型POST请求也是如此?

最佳答案
事实证明,当$content_length> client_body_buffer_size,
然后请求体被写入文件和变量$request_body ==“”.

另见http://mailman.nginx.org/pipermail/nginx/2013-September/040442.html

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。