Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I want to use Nginx as a simple reverse proxy, but if the server behind Nginx is down I just was to display a blank page. For some reason this configuration isn't displaying a blank page on error 502 and I can't figure out why.

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    use epoll;
    # multi_accept on;
}

http {

    keepalive_timeout 65;
    proxy_read_timeout 200;

    upstream tornado {
        server 127.0.0.1:8001;
    }

    server {
        listen 80;
        server_name www.something.com;

        location / {
            error_page 502 = @blank;
            proxy_pass http://tornado;
        }

        location @blank {
            index index.html;
            root /web/blank;
        }
    }
}
share|improve this question

2 Answers 2

I believe that "root" is ignored in named locations (@blank). Can't say if this is by design or a bug.

This works for me (0.7.67):

    location / {
        error_page 502 = /blank.html;
        proxy_pass http://tornado;
    }

    location = /blank.html {
        root /foo/bar;
    }
share|improve this answer

Specify "error_page" for whole server, not for "location /"

share|improve this answer
    
That didn't seem to work. Thanks though. –  user55583 Sep 29 '10 at 23:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.