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
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 == "".
$content_length > client_body_buffer_size
$request_body == ""
See also http://mailman.nginx.org/pipermail/nginx/2013-September/040442.html