NGINX использует $ server_port в апстриме
Я хочу, чтобы proxy_pass в апстрим, который имеет один хост, но несколько портов. Вот что у меня сейчас есть:
upstream myUps {
zone myUps 32k;
server myUps.hostname.com:$server_port;
}
Когда я пробую эту конфигурацию и перезагружаю nginx, я получаю следующее:
"неверный порт в восходящем направлении"
Основная идея проста, я просто хочу сохранить порт, который передается на сервер (server_port), и использовать его при переходе к восходящему потоку. Я могу жестко кодировать номера портов в восходящем потоке, как это:
...
server myUps.hostname.com:1234;
...
И это будет работать каждый раз для этого конкретного порта. Но мне нужно иметь возможность использовать несколько портов.
РЕДАКТИРОВАТЬ - Вот как выглядит мой proxy_pass:
proxy_pass http://myUps;
-or-
proxy_pass http://myUps:$server_port;
Я не знаю, прав ли второй, я просто играю с ним, чтобы посмотреть, возможно ли передать номер порта из локации в апстрим.
Другие вещи, которые я пробовал, не работали:
Установка параметра в карте, действующей как глобальная переменная. Указание порта в разделе «местоположение» сервера. Установите хэш (работает только для IP, поэтому здесь не очень помогает).