$proxy_internal_connection

$proxy_internal_connection указывает, используется ли соединение с проксируемым сервером во внутренней или внешней сети. — NGINX Core (HTTP)

$proxy_internal_connection NGINX Core (HTTP)

Описание

Переменная $proxy_internal_connection устанавливается в контексте обработки проксируемого запроса в NGINX, когда запрос перенаправляется на другой upstream-сервер. Она проверяет, использует ли исходящее соединение внутреннюю сеть: это определяется тем, является ли сокет для соединения частью правил внутренней маршрутизации, настроенных в вашей конфигурации NGINX. По умолчанию значение этой переменной будет равно '1' (true), если исходящее соединение внутреннее, и '0' (false), если оно внешнее. Эта переменная особенно полезна в сценариях с несколькими уровнями проксирования или в конфигурациях, где ограничения безопасности применяются в зависимости от того, являются ли соединения внутренними или внешними. Например, если у вас заданы правила, ограничивающие доступ или изменяющие заголовки в зависимости от типа соединения, эта переменная поможет тонко настроить такое поведение. Пользователи могут задать специальные конфигурации в своей настройке NGINX, чтобы реагировать по-разному в зависимости от значения этой переменной, усиливая контроль над обработкой соединений в проксируемых запросах. Типичные варианты использования могут включать повышенный уровень логирования, изменение заголовков запроса для внутренних соединений, но не для внешних, или применение специальных мер безопасности, чтобы не допустить раскрытия определённых функций через публичные соединения. Журналы затем могут указывать разные маршруты в зависимости от состояния этой переменной, что облегчает диагностику и мониторинг производительности.

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

location /proxy {
    proxy_pass http://backend;
    # Log whether the connection is internal or not
    access_log /var/log/nginx/internal_access.log;
    if ($proxy_internal_connection) {
        # Internal requests can have specific handling 
        set $internal 'true';
    }
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location, if

Убедитесь, что маршрутизация сети настроена правильно, так как неправильная конфигурация может привести к неверным значениям этой переменной.

Эта переменная применима только в контекстах, где происходит проксирование, поэтому использование её в несвязанных контекстах не даст никаких результатов.

Перепроверьте значение в условиях, поскольку вычисление $proxy_internal_connection зависит от конкретной конфигурации сервера и правил подключаемости.