Назад | Перейти на главную страницу

Повторно использовать страницу ошибки django в nginx

Я хочу избежать несовместимых страниц ошибок с помощью django и nginx. Если статический файл не найден, это страница ошибок nginx по умолчанию, а не страница django. Я думаю, что перенаправление каждого неудавшегося запроса на сервер Gunicorn приведет к снижению производительности, что приведет к появлению страницы ошибки django. Где я могу найти страницы ошибок django по умолчанию и как разрешить nginx их использовать?

Django может использовать множество способов подготовки и генерации страницы 404. AFAIK Django может даже отображать некоторые шаблоны во время ошибки 404.

Если вы хотите доставить ту же страницу, что и Django, вы можете:

  • отправлял каждый неудавшийся запрос в Gunicorn (что может убить вашу производительность).

  • или сгенерируйте одну неудачную страницу, сохраните ее где-нибудь в статической форме (например, с помощью curl -o /var/www/errors/404.html http://your.site.com/404 ) и обслуживать соответствующую статическую страницу с

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

Первый способ позволит вам доставить настроенную страницу ошибки (в отношении отсутствующего URI). Хотя последний способ доставит страницы с ошибками очень быстро, но страница с ошибкой будет одинаковой для всех отсутствующих страниц и URI.

Выбор остается за вами.