proxy_cache_background_update after cache expiry
mdounin at mdounin.ru
Wed Apr 5 14:52:29 UTC 2017
On Wed, Apr 05, 2017 at 07:32:01AM -0400, IgorR wrote:
> I'm trying to configure nginx to use proxy_cache_background_update but it
> seems like after expiry it still waits for the full roundtrip to the
> backend, returning a MISS in X-Cache-Status. What am I MISSing?
> I'm using nginx 1.11.12 under ubuntu 14.04 running inside docker, but
> hopefully this is too much detail.
> location ~ ^/?(\d+/[^/]+)?/?$
> expires 20s;
> proxy_cache app_cache;
> proxy_cache_lock on;
> proxy_cache_bypass $http_upgrade;
> proxy_pass http://172.17.0.2:5000;
> proxy_http_version 1.1;
> error_log /nginxerror.log debug;
> add_header X-Cache-Status $upstream_cache_status;
> proxy_cache_use_stale error timeout updating http_500 http_502 http_503
> proxy_cache_background_update on;
"MISS" in $upstream_cache_status indicate that the relevant
resource is not present in the cache, and therefore there is
no stale response to return.
Most likely the problem is the resource was never saved to the
cache, because of the cacheability flags in the response.
Consider testing if the resource is at all saved to cache,
the proxy_cache_background_update is certainly irrelevant.
Note that cacheability of a resource is determinded by nginx based
on multiple factors. Cache-Control, Expires, X-Accel-Expires,
Set-Cookie, and Vary response headers affect caching. If there
are no response headers which explicitly allow caching and set
expiration time, only responses with appropriate proxy_cache_valid
For more information see http://nginx.org/r/proxy_cache_valid.
More information about the nginx