Reutilizar a página de erro do django no nginx

1

Eu quero evitar páginas de erro inconsistentes usando o django e o nginx. Se um arquivo estático não for encontrado, a página de erro nginx padrão e não a do django. Eu acho que isso resultaria em um desempenho ruim para redirecionar cada solicitação com falha para o servidor do gunicorn para acabar com a página de erro do django. Onde posso encontrar as páginas de erro padrão do django e como deixar o nginx usá-las?

    
por R3turnz 12.02.2017 / 19:40

1 resposta

0

O Django pode usar várias maneiras de preparar e gerar páginas 404. O AFAIK Django pode até renderizar alguns modelos durante o erro 404.

Se você quiser entregar a mesma página que o Django envia para você, você pode:

  • enviou cada solicitação com falha ao gunicorn (o que pode matar seu desempenho).

  • ou gere uma página com falha, armazene-a em algum lugar em sua forma estática (por exemplo, com curl -o /var/www/errors/404.html http://your.site.com/404 ) e veicule a página estática apropriada com

    location /404.html {
       alias /var/www/errors/404.html
    }
    error_page 404             /404.html;
    

A primeira maneira possibilitará a entrega de uma página de erro personalizada (com relação ao URI ausente). Enquanto o último caminho irá entregar páginas de erro muito rápido, mas a página de erro será o mesmo para todas as páginas e URIs em falta.

A escolha é sua.

    
por 12.02.2017 / 21:32