Não há muito sentido em usar "~ *" para localização / internalerror, o local simples faria.
Você está recebendo 404 porque o arquivo / InternalError está faltando. Você pretendia atender a esses pedidos do backend do uwsgi?
Gostaria de configurar meu servidor nginx para retornar uma página de erro específica nos códigos de status HTTP 50x, e gostaria que essa página ficasse indisponível por uma solicitação direta dos usuários (por exemplo, http // mysite / internalerror) .
Para isso, estou usando a diretiva internal
do nginx, mas devo estar faltando alguma coisa, como quando eu coloquei essa diretiva no meu /internalerror
location, o nginx retorna um erro 404 customizado (que nem é meu Página de erro 404) quando uma página falha.
Então, para resumir, aqui está o que parece acontecer:
error_page
internal
, ele finalmente retorna a um código de erro 404 personalizado < - why? a documentação diz que as diretivas error_page
não estão relacionadas com internal
: link
Aqui está uma extração do nginx.conf com alguns comentários para apontar:
error_page 404 /NotFound;
error_page 500 502 503 504 =500 /InternalError; # HTTP 500 Error page declaration
location / {
try_files /Maintenance.html $uri @pythonbackend;
}
location @pythonbackend {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
}
location ~* \.(py|pyc)$ { # This internal location works OK and returns my own 404 error page
internal;
}
location /__Maintenance.html { # This one also works fine
internal;
}
location ~* /internalerror { # This one doesn't work and returns nginx's 404 error page when I trigger an error somewhere on my site
internal;
}
Muito obrigado pela sua ajuda !!
Não há muito sentido em usar "~ *" para localização / internalerror, o local simples faria.
Você está recebendo 404 porque o arquivo / InternalError está faltando. Você pretendia atender a esses pedidos do backend do uwsgi?