nginx error_page para 502 erros de gateway inválidos

6

Aqui está a configuração do meu servidor:

    server {
            listen 0.0.0.0;
            server_name dev.host.com;

            location / {
                    include /etc/nginx/proxy.conf;
                    proxy_pass http://127.0.0.1:5000;
                    proxy_redirect default;

                    error_page 502 =200 @maintenance;
            }

            location ^~ /(img|js|css)/ {
                    root /path/to/application/assets;
                    expires max;
                    break;

                    error_page 404 =302 /;
            }

            location @maintenance { 
                     root /path/to/static/offline/files;
                     try_files $uri $uri/ /index.html =503;
            }
    }

Quando o aplicativo upstream não está on-line, estou obtendo a página padrão nginx 502 para o caminho raiz (ou seja: GET / ). Alguma ideia do porquê isso está acontecendo? Eu gostaria que o caminho da raiz respondesse com a página de manutenção como qualquer outro caminho de solicitação.

    
por mikeycgto 12.02.2012 / 01:10

3 respostas

1

Os diabos nos detalhes; Meu local nomeado @maintenance não foi configurado corretamente. Especificamente, o argumento de envio ( $uri/ ) para try_files estava causando o problema. Aqui está o local com nome correto:

location @maintenance { 
    root /path/to/static/offline/files;
    try_files $uri /index.html =503;
}
    
por 24.04.2012 / 04:54
1

Eu fiz isso para todo o vhost:

server {
         (...) 
         error_page 500 502 503 504 /5xx.html;
            location /5xx.html{
                    root /www/error_pages/;
         } 
}

Isso funciona perfeitamente para mim.

    
por 22.02.2012 / 10:52
1

Tente definir proxy_intercept_errors em; link

    
por 17.02.2012 / 14:02

Tags