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指令中使用。我刚刚编写了一个使用它的工作配置。每个端口是否有一个应用程序?如果是这样,地图应该会有所帮助。