Я хочу избежать несовместимых страниц ошибок с помощью 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.
Выбор остается за вами.