Nginx proxy_cache_key $request_body is ignored for large request body

两盒软妹~` 提交于 2019-12-04 04:28:17

So it turns out that when $content_length > client_body_buffer_size, then the request body is written to a file and the variable $request_body == "".

See also http://mailman.nginx.org/pipermail/nginx/2013-September/040442.html

Rather than using the $request_body within the proxy_cache_key, you may more simply use $content_length. Of course, it comes with its own limitation, but if you know which query you will receive, it can be also a very interesting workaround.

proxy_cache_key "$scheme$request_method$host$request_uri$content_length";

You may alternatively use $request_body as well to keep the desired behavior for smaller request payload:

proxy_cache_key "$scheme$request_method$host$request_uri$request_body$content_length";
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!