$proxy_host

Переменная $proxy_host содержит имя хоста upstream-сервера, на который осуществляется проксирование. — NGINX Core (HTTP)

$proxy_host NGINX Core (HTTP)

Описание

В NGINX переменная $proxy_host играет ключевую роль в конфигурациях обратного проксирования, которые перенаправляют клиентские запросы на backend‑серверы. Когда запрос проксируется, эта переменная устанавливается в значение части URL, отвечающей за хост, указанного в директиве proxy_pass. Она отражает имя хоста upstream‑сервера, определённое настройками прокси в файле конфигурации. Переменная $proxy_host доступна во время обработки запроса, особенно в тех контекстах, где запрос проксируется — например, внутри блока location, использующего директиву proxy_pass. Если upstream‑сервер задан именем хоста или IP‑адресом, $proxy_host вернёт соответствующее значение, что позволяет динамически обрабатывать запросы в зависимости от идентичности целевого сервера. Типичными значениями $proxy_host могут быть фактическое имя хоста, например "api.example.com", или IP‑адрес, если он указан непосредственно в определении upstream. При использовании нескольких upstream‑серверов эта переменная становится жизненно важной для ведения логов и отладки. Она помогает отслеживать, на какой сервер был отправлен запрос, особенно в конфигурациях с балансировкой нагрузки. Она также полезна при формировании пользовательских заголовков или изменении запросов на основе разрешённого имени хоста upstream‑сервера.

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

location /api {
    proxy_pass http://backend;
    proxy_set_header Host $proxy_host;
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

$proxy_host будет пустым, если проксирование настроено неправильно или если сервер upstream недоступен.

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