error_page

Директива `error_page` настраивает пользовательские страницы ошибок для указанных HTTP кодов состояния. — NGINX HTTP Core

error_page
httpserverlocationif in location
Синтаксисerror_page code1 [code2 ...] uri;
По умолчаниюnone
Контекстhttp, server, location, if in location
МодульNGINX HTTP Core
Аргументы2+

Описание

Директива `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 на предмет допустимых кодов.