scgi_intercept_errors

Директива `scgi_intercept_errors` позволяет NGINX перехватывать ошибки, генерируемые SCGI-серверами, что даёт возможность реализовать пользовательскую обработку ошибок. — NGINX HTTP Core

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

Описание

Директива `scgi_intercept_errors` определяет, должен ли NGINX перехватывать ответные сообщения об ошибках, возвращаемые SCGI-серверами при обработке клиентских запросов. При установке в 'on' это позволяет NGINX обрабатывать ошибки внутри и отвечать соответствующей страницей ошибки или собственной логикой обработки ошибок, как это задаётся другими связанными директивами, например `error_page`. С точки зрения поведения, установка этой директивы в 'off' позволит NGINX передавать ответы об ошибках напрямую клиенту без изменений. Это особенно полезно в сценариях, где требуется возвращать сырые сообщения об ошибках из SCGI-приложения, например в отладочных средах. Напротив, включение перехвата может улучшить взаимодействие с пользователем, предоставляя более удобные сообщения об ошибках и обеспечивая, что определённые коды ошибок вызовут назначенные ответы об ошибках, как настроено в блоках сервера NGINX. Эта директива работает в сочетании с конфигурацией обработки SCGI и важна для контроля потока информации об ошибках от бэкенд-приложений к клиентам.

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

location /scgi {
    include scgi_params;
    scgi_pass 127.0.0.1:9000;
    scgi_intercept_errors on;
    error_page 404 /404.html;
}

Убедитесь, что вы определили директивы `error_page` для обработки ошибок, когда эта директива установлена в 'on'.

Неправильная конфигурация связанных директив `error_page` может привести к непредвиденным результатам при перехвате ошибок.