NGINX在上游使用$server\u端口

NGINX在上游使用$server\u端口,nginx,Nginx,我想代理传递到一个只有一个主机但有多个端口的上游。这就是我目前拥有的: upstream myUps { zone myUps 32k; server myUps.hostname.com:$server_port; } 当我尝试此配置并重新加载nginx时,会得到以下结果: “上游中的端口无效” 基本思想很简单,我只想保留传递到服务器的端口(server_端口),并在传递到上游时使用它。我可以在上游硬编码端口号,如下所示: ... server myUps.hostname.com:

我想代理传递到一个只有一个主机但有多个端口的上游。这就是我目前拥有的:

upstream myUps {
  zone myUps 32k;
  server myUps.hostname.com:$server_port;
}
当我尝试此配置并重新加载nginx时,会得到以下结果:

“上游中的端口无效”

基本思想很简单,我只想保留传递到服务器的端口(server_端口),并在传递到上游时使用它。我可以在上游硬编码端口号,如下所示:

...
server myUps.hostname.com:1234;
...
对于那个特定的端口,每次都会这样。但我需要能够使用多个端口

编辑- 这就是我的代理通行证的样子:

proxy_pass http://myUps;
-or-
proxy_pass http://myUps:$server_port;
我不知道第二个是否正确,我只是在玩它,看看是否有可能将端口号从该位置传递到上游

其他我尝试过但不起作用的东西:

在映射中设置作为全局变量的参数。 从服务器的“位置”部分指定端口。
设置一个散列(只对IP有效,所以在这里没有真正的帮助。)

对于其他可能偶然发现这一点的人,我认为这是不可能的。显然,在位置调用proxy\u pass之前,会对上游进行测试,这意味着在填充$server\u port之前,该端口已被使用。$server\u port可以在proxy\u pass指令中使用。我刚刚编写了一个使用它的工作配置。每个端口是否有一个应用程序?如果是这样,地图应该会有所帮助。