error_page
Директива `error_page` настраивает пользовательские страницы ошибок для указанных HTTP кодов состояния.
Описание
Директива error_page используется в конфигурациях NGINX для определения пользовательских ответов при ошибках для конкретных HTTP кодов состояния. Эту директиву можно применять в разных контекстах, таких как http, server, location или внутри блока if в пределах блока location. Вы можете указать два или более аргумента: первый — это HTTP код состояния или диапазон (например, 404 или 500 502 503 504), а второй — это URI, который будет использоваться как страница ошибки и может указывать либо на статический файл, либо на другой блок location.\n\nКогда происходит ошибка, например файл не найден (404) или ошибка сервера (500), NGINX проверяет директивы error_page, определённые для этого кода. Если найден соответствующий код ошибки, NGINX отобразит содержимое, соответствующее указанному URI, что позволяет формировать индивидуальные ответы для конечного пользователя. Страница ошибки может быть либо файлом на диске, либо другим location, который далее обрабатывает запрос. Кроме того, может использоваться внутренняя переадресация для более гибкой обработки сложных ответов об ошибках.\n\nЭффективное использование error_page может улучшить пользовательский опыт, предоставляя более информативные или эстетически привлекательные страницы ошибок по сравнению со стандартными сообщениями об ошибках, генерируемыми сервером. Кроме того, разработчики могут привязывать пользовательские страницы ошибок к более детальной аналитике или ресурсам по устранению неполадок, привязанным к конкретным кодам ошибок. Такая гибкость помогает улучшить как удобство использования, так и отладку веб-приложений и статических сайтов.
Пример конфига
http {
error_page 404 /custom_404.html;
location = /custom_404.html {
root /usr/share/nginx/html;
}
}Указание несуществующего URI может привести к рекурсивной обработке ошибок.
Страницы ошибок с блоком location сами не должны возвращать 404, иначе это вызовет следующий обработчик ошибок.
Не все HTTP-коды состояния можно использовать; убедитесь, что проверили документацию NGINX на предмет допустимых кодов.