nginx with proxy_cache_use_stale not returning from cache when connection refused

new299 nginx-forum at
Wed Dec 10 16:45:26 UTC 2014


I'm using nginx as a reverse proxy, but I can't get nginx to serve requests
from its cache when the upstream server is refusing connections. I
understood that "proxy_cache_use_stale error" should allow me to do this,
but it doesn't seem to work for me. Have I perhaps misunderstood something?

My complete nginx.conf looks like this:

user www-data;
worker_processes 4;
pid /run/;

events {
        worker_connections 768;
        # multi_accept on;

http {
    upstream localsvr {
            server localhost:8080;

    proxy_cache_path  /data/nginx/cache levels=1:2 keys_zone=one:8m
max_size=5000m inactive=300m;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    server {
            keepalive_timeout 65;
            types_hash_max_size 2048;
            proxy_buffering on;

            default_type application/octet-stream;

            gzip on;
            gzip_disable "msie6";
            listen 80;
            proxy_cache one;
            proxy_cache_min_uses 100;
            proxy_set_header Host $host;
            location / {
                    proxy_pass http://localsvr;
                    proxy_cache_use_stale error;
                    proxy_next_upstream error;
                    proxy_redirect off;


I've previously also posted this on stackoverflow, but didn't get any
feedback there:

Posted at Nginx Forum:,255408,255408#msg-255408

More information about the nginx mailing list