$proxy_internal_host

$proxy_internal_host возвращает имя хоста внутреннего прокси для запроса. — NGINX Core (HTTP)

$proxy_internal_host NGINX Core (HTTP)

Описание

Переменная $proxy_internal_host в NGINX используется преимущественно в конфигурациях, где запросы проксируются во внутренние локации. Ее роль — сохранять и возвращать внутреннее (или бэкенд) имя хоста, которое обычно определяется настройками внутренней сети сервера. Эта переменная особенно полезна в сценариях, связанных с балансировкой нагрузки или настройками обратного прокси, когда несколько upstream-серверов могут обрабатывать входящие запросы. В зависимости от контекста переменная будет установлена в внутреннее имя хоста, указанное в конфигурации прокси, или по умолчанию примет имя хоста сервера, если оно явно не задано. $proxy_internal_host вычисляется во время обработки запроса, который был изменён с помощью директив, связанных с прокси, таких как "proxy_pass". Если задан proxy_name, это имя будет использовано в качестве значения этой переменной. Если внутреннее имя хоста не задано, система может вернуться к поведению по умолчанию, предусмотренному конфигурацией NGINX. Это гарантирует корректную маршрутизацию запросов на основе явно заданных конфигураций или внутренних значений по умолчанию. Это позволяет реализовывать продвинутые конфигурации, в которых решения принимаются на основе переменной $proxy_internal_host, обеспечивая управление внутренними политиками маршрутизации или проверками безопасности, основанными на внутренних именах хостов. Также это может улучшить процессы логирования и отладки, когда администраторам нужно более наглядно изучать настройки внутреннего проксирования.

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

location /api {
    proxy_pass http://backend_server;
    proxy_set_header Host $proxy_internal_host;
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

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

$proxy_internal_host может работать не так, как ожидается, если используется вне прокси-контекста, поскольку его значение задаётся только для проксированных запросов.

Имейте в виду, что эта переменная не содержит информацию о порте; при необходимости порт нужно обрабатывать отдельно.