$proxy_host
Переменная $proxy_host содержит имя хоста upstream-сервера, на который осуществляется проксирование. — 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, чтобы избежать непредвиденных проблем.