I use nginx as a reverse proxy and I would like it to cache POST requests. My back-end is correctly configured to return appropriate cache-control headers for POST requests. In
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";