nginx post response doesn't get cached
mdounin at mdounin.ru
Tue Jan 8 19:31:54 UTC 2013
On Tue, Jan 08, 2013 at 06:57:08AM -0500, nurettin wrote:
> Here's the related configuration:
> proxy_cache_path /var/www/cache levels=1:2 keys_zone=kendi-cache:1000m
> proxy_cache_key "$request_uri|$request_body";
> When I send small requests, nginx works great.
> When I send a large post request (long uri) I get these logs:
> I have debug on error.log, here's the output:
> 2013/01/08 13:50:25 [error] 32765#0: *1 cache key too large, increase
> upstream buffer size 4096, client:...
> 2013/01/08 13:51:01 [warn] 32765#0: *1 an upstream response is buffered to a
> temporary file /var/www/cache/tmp/0000000001 while reading upstream,
> 2013/01/08 13:51:20 [notice] 300#0: http file cache: /var/www/cache 0.000M,
> bsize: 4096
> 2013/01/08 13:51:20 [notice] 32764#0: signal 17 (SIGCHLD) received
> 2013/01/08 13:51:20 [notice] 32764#0: cache loader process 300 exited with
> code 0
> 2013/01/08 13:51:20 [notice] 32764#0: signal 29 (SIGIO) received
> I'm not sure what to do here.
Ah, ok, the error message logged suggests that you need to
increase upstream buffer - it's used to store cache header and
it's too small to hold your cache key with request body included.
The "increase upstream buffer size" wording is indeed not very
helpful, it was made more specific in nginx 1.1.0+. In case of
proxy, you have to increase proxy_buffer_size, see
More information about the nginx