grpc_intercept_errors

Директива `grpc_intercept_errors` включает или отключает перехват кодов ошибок gRPC в NGINX. — NGINX HTTP Core

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

Описание

Директива `grpc_intercept_errors` в NGINX позволяет управлять тем, как gRPC‑сервисы обрабатывают ошибки. При включении NGINX перехватывает ответы об ошибках gRPC и заменяет их на пользовательские ответы в соответствии с поведением, заданным в конфигурации. Это особенно полезно для предоставления более удобочитаемых сообщений об ошибках или для стандартизации ответов об ошибках, отправляемых клиентам. Эта директива принимает булев аргумент — 'on' или 'off'. При установке в 'on' NGINX будет перехватывать ошибки от upstream gRPC‑сервиса и позволит дополнительно настроить обработку или трансформацию этих ошибок прежде чем вернуть их клиенту. Например, вы можете записать ошибку в лог или сопоставить определённые коды ошибок с более подробными сообщениями. При установке в 'off' NGINX просто пропустит код и сообщение об ошибке от backend gRPC‑сервиса без перехвата или изменений.

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

http {
    server {
        location /some-grpc-service {
            grpc_pass grpc://backend_service;
            grpc_intercept_errors on;
        }
    }
}

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

Имейте в виду, что некоторые коды ошибок gRPC могут некорректно преобразовываться в HTTP-ответы, поэтому настраивайте внимательно.