nginx página de erro padrão parou de funcionar por algum motivo

1

Isso costumava funcionar:

server {
  server_name example.com;

  location / {
    proxy_pass http://localhost:8888;
    error_page 502 /502.html;
  }

  location = /502.html {
    root /var/www/example;
  }
}

Agora, de repente, isso não acontece mais ... não sei o que mudou?

Eu recebo 404 em vez de exibir /var/www/example/index.html caso a porta 8888 não responda ...

Como fazer isso funcionar novamente? obrigado

    
por davidhq 21.04.2016 / 12:02

2 respostas

0

A maior parte do seu conteúdo reside no servidor remoto. Você precisa exibir uma página de erro (junto com alguns recursos) localmente. Você precisa de um "local especial" que seja diferente de qualquer localidade servida pelo upstream e coloque todos os seus recursos locais lá. Não consigo escolher um nome para esse local, pois não tenho ideia do que você está veiculando a partir de 8888. Mas digamos /error_pages por enquanto.

server {
    server_name example.com;

    location / {
        proxy_pass http://localhost:8888;
        error_page 502 /error_pages/502.html;
    }

    location /error_pages {
        root /var/www/example;
    }
}

Com a configuração acima, você precisará editar 502.html e alterar os URLs dos recursos para adicionar o prefixo /error_pages .

Você também precisará mover todos os arquivos ( 502.html e seus arquivos de recursos) para o subdiretório /var/www/example/error_pages/ .

    
por 22.04.2016 / 10:43
0

Sua configuração informa que o documento de erro é /var/www/example/502.html . Nada na sua configuração tenta carregar /var/www/example/index.html a qualquer momento, nunca. Renomeie o arquivo.

    
por 21.04.2016 / 19:00