$proxy_protocol_server_port
Переменная $proxy_protocol_server_port возвращает порт сервера, указанный в PROXY protocol. — NGINX Core (HTTP)
Описание
Переменная $proxy_protocol_server_port используется в конфигурациях NGINX для получения номера порта, который сервер получил из заголовка PROXY protocol. Эта переменная особенно актуальна, когда PROXY protocol включен, поскольку позволяет NGINX определить, находится ли он за прокси, который пересылает информацию о подключении клиента. При обработке запроса, если PROXY protocol активирован через директиву 'proxy_protocol on' внутри server block, номер порта сервера будет динамически устанавливаться на основе данных о входящем соединении, передаваемых прокси. Например, если запрос приходит на порт 80, то это значение вы получите при обращении к $proxy_protocol_server_port. Эта переменная может быть очень полезна для настройки завершения SSL или для корректной перенаправки трафика на основе исходного порта, использованного для соединения до любых преобразований. Она может иметь типичные значения, такие как '80' для HTTP или '443' для соединений HTTPS, в зависимости от конфигурации и поведения пересылки прокси-сервера.
Пример конфига
server {
listen 80 proxy_protocol;
location / {
return 200 "Server port: $proxy_protocol_server_port";
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, locationУбедитесь, что PROXY protocol действительно включён на upstream-сервере; в противном случае эта переменная останется пустой.
Учтите, что использование этой переменной без необходимых настроек прокси приведёт к непредвиденному поведению, поскольку она зависит от наличия заголовка PROXY protocol.
Если используется SSL, убедитесь, что upstream-сервер передаёт и PROXY protocol, и настройки SSL корректно.