Página de erro de fallback local Nginx se o destino do proxy não estiver disponível

8

Estou encaminhando solicitações para um serviço local por meio de um servidor Nginx. O que tento realizar agora é recorrer a uma página de erro local, caso o serviço fique indisponível.

Minha configuração atual é

server {
    listen       80;
    server_name  "";

    location / {
        proxy_pass  http://127.0.0.1:9080;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 1;
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504 http_404;
        proxy_intercept_errors on;
    }

    error_page 501 502 503 @maintenance;
    location @maintenance {
            root   /locust/www/fallback/htdocs;
            index  index.html index.htm;
    }
}

Proxying funciona, mas assim que eu faço o meu serviço no 9080 não está disponível, o index.html do meu local de manutenção NÃO é exibido.

Alguma sugestão sobre o que há de errado com esta configuração?

    
por stpn108 27.05.2013 / 10:55

2 respostas

10

Na verdade, eu só tive que modificar um pouco sua configuração:

error_page 501 502 503 /500.html;
location = /500.html {
        root   /locust/www/fallback/htdocs;
}

e, obviamente, renomeie o index.html que você deseja apresentar para 500.html .

    
por 06.12.2013 / 18:28
1

Tente especificar o URL exato da página de erro como:

    proxy_intercept_errors on;
    error_page  500 502 503 504 402 403 401  /500.html;
    root   /locust/www/fallback/htdocs;
    
por 27.05.2013 / 13:54

Tags