重写规则。获取Apache配置中的物理端口号

重写规则。获取Apache配置中的物理端口号,apache,mod-rewrite,port-number,Apache,Mod Rewrite,Port Number,2我有以下配置: ---443-> Load-Balancer-1 ---80> Apache-Proxy ---8080> Tomcat ---443-> Load-Balancer-2 ---81> Apache-Proxy ---8081> Tomcat ---443-> Load-Balancer-3 ---82> Apache-Proxy ---8082> Tomcat <VirtualHost *:80 *:81 *:

2我有以下配置:

---443-> Load-Balancer-1 ---80> Apache-Proxy ---8080> Tomcat
---443-> Load-Balancer-2 ---81> Apache-Proxy ---8081> Tomcat
---443-> Load-Balancer-3 ---82> Apache-Proxy ---8082> Tomcat
  <VirtualHost *:80 *:81 *:82>
     RewriteRule ^/(.*) ://localhost:80<xx>/$1 [P,L]
  </VirtualHost>
Apache服务器中有多个条目位于不同的端口80、81和81上。每个Apache端口都有一个Tomcat侦听端口。以下是简化的配置:

---443-> Load-Balancer-1 ---80> Apache-Proxy ---8080> Tomcat
---443-> Load-Balancer-2 ---81> Apache-Proxy ---8081> Tomcat
---443-> Load-Balancer-3 ---82> Apache-Proxy ---8082> Tomcat
  <VirtualHost *:80 *:81 *:82>
     RewriteRule ^/(.*) ://localhost:80<xx>/$1 [P,L]
  </VirtualHost>
在上面的配置中,必须使用物理apache端口号,而不是物理apache端口号。在本例中为80、81或82

我尝试使用%{SERVER\u PORT},但它从来都不是物理端口。如果禁用UseCononicalName,则在我的示例中它是负载平衡器443的端口。如果启用UseCononicalName,则它是Apache配置中配置的端口之一。就我而言,它总是82

UseCononicalPhysicalPort On | Off指令在理论上是为解决此问题而设计的,但它似乎不够灵活,无法用于虚拟主机配置

我试图以%{ENV:SERVER_PORT}的形式访问CGI变量SERVER_PORT,但它不存在

我试图使用setenif解决这个问题,但是这个指令根本无法访问端口号。为什么


当前的工作解决方案是创建三个不同的虚拟主机并硬编码端口号,但我不喜欢它。

%{HTTP\u host}给您什么值?在上使用CanonicalPhysicalPort有什么好处吗?文本输入错误。更新。UseCononicalName和UseCononicalPhysicalPort的不同组合以不同的方式计算服务器\u端口,但它从来不是我需要的值。