proxy_intercept_errors

Директива `proxy_intercept_errors` используется для управления тем, перехватывает ли NGINX ошибки от проксируемых серверов.

Синтаксисproxy_intercept_errors on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива proxy_intercept_errors в NGINX позволяет задавать, должен ли сервер обрабатывать ответные сообщения об ошибках от проксируемых серверов. Когда эта директива установлена в положение on, NGINX будет перехватывать HTTP-ответы, указывающие на ошибки (например, 404, 500 и т. д.) и обрабатывать их в соответствии с настроенными параметрами обработки ошибок. Напротив, если эта директива установлена в положение off, любые ответы с ошибками, полученные от проксируемого сервера, будут переданы клиенту напрямую без какого-либо изменения или обработки со стороны NGINX. Это может быть полезно для реализации пользовательских страниц ошибок или перенаправления клиентов в зависимости от конкретных ошибок.

Эту директиву можно задавать в контекстах http, server или location, что делает её универсальной для различных сценариев конфигурации. Важно понимать, что установка этой директивы в on может привести к поведению, отличающемуся от ожидаемого, поскольку клиент не увидит исходный ответ от проксируемого сервера, если вы специально не настроите обработку ошибок. В зависимости от архитектуры вашего приложения и того, как вы хотите управлять ошибками, отображаемыми пользователю, правильная настройка этой директивы может быть решающей.

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

location /api {
    proxy_pass http://backend;
    proxy_intercept_errors on;
    error_page 404 /custom_404.html;
}

Убедитесь, что вы определили собственные страницы ошибок, если proxy_intercept_errors установлено в on, чтобы избежать показа стандартных страниц ошибок.

Когда включено, убедитесь, что стратегия обработки ошибок вашего приложения соответствует тому, как NGINX будет обрабатывать ошибки.

← Ко всем директивам