fastcgi_intercept_errors

Директива `fastcgi_intercept_errors` настраивает NGINX на перехват ошибок из ответов FastCGI для пользовательской обработки ошибок. — NGINX HTTP Core

fastcgi_intercept_errors
httpserverlocation
Синтаксисfastcgi_intercept_errors on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `fastcgi_intercept_errors` работает совместно с FastCGI и управляет тем, как NGINX обрабатывает ошибки, возвращаемые FastCGI-сервером, например HTTP-статусы 4xx или 5xx. При значении 'on' NGINX будет перехватывать эти ответные ошибки, что позволяет задавать пользовательские страницы ошибок или выполнять дополнительную обработку вместо прямой пересылки исходного ответа об ошибке FastCGI клиенту. Это особенно полезно в ситуациях, когда вы хотите отображать удобочитаемые сообщения об ошибках для пользователя или реализовать специфические механизмы восстановления после ошибок. Директива принимает булев флаг в качестве аргумента, который может быть 'on' или 'off'. Когда установлено 'on', любые ответные ошибки от FastCGI-сервера (например, со статусными кодами в диапазоне 400 или 500) могут быть обработаны с помощью конкретных конфигураций страниц ошибок, определённых в конфигурации NGINX. При значении 'off' поведение по умолчанию позволяет NGINX возвращать ответ FastCGI как есть, включая любые сообщения об ошибке. Директива может использоваться в контекстах 'http', 'server' или 'location', что даёт гибкость в выборе места установки в зависимости от требуемой области действия конфигурации обработки ошибок.

Пример конфига

location /app {
    fastcgi_pass backend;
    fastcgi_intercept_errors on;
    fastcgi_index index.php;
    include fastcgi_params;
}

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

Эта директива не влияет на ответы, не относящиеся к FastCGI; убедитесь, что вы настроили обработку ошибок для других типов бэкендов при необходимости.