Aqui está um trecho da minha configuração nginx:
server {
error_page 500 /errors/500.html;
}
Quando eu faço um 500 no meu aplicativo, o Chrome mostra apenas sua página padrão de 500 (o Firefox e o Safari mostram uma página em branco) em vez da minha página de erro personalizada.
Eu sei que o arquivo existe porque posso visitar http://server/errors/500.html
e vejo a página. Também posso mover o arquivo para a raiz do documento e alterar a configuração para isso:
server {
error_page 500 /500.html;
}
e o nginx veicula a página corretamente, por isso não parece algo diferente configurado incorretamente no servidor.
Eu também tentei:
server {
error_page 500 $document_root/errors/500.html;
}
e:
server {
error_page 500 http://$http_host/errors/500.html;
}
e:
server {
error_page 500 /500.html;
location = /500.html {
root /path/to/errors/;
}
}
sem sorte.
Esse comportamento é esperado? As páginas de erro precisam existir na raiz do documento ou estou faltando algo óbvio?
Atualização 1: Isso também falha:
server {
error_page 500 /foo.html;
}
quando foo.html
realmente existe na raiz do documento. Quase parece que alguma coisa está sobrescrevendo minha configuração, mas esse bloco é o único lugar em qualquer lugar em /etc/nginx/*
que faz referência à diretiva error_page
.
Existe algum outro lugar que possa definir a configuração do nginx?