Apache 2.4 - 基于完整 url 而不是尾随路径配置 ProxyPass

Apache 2.4 - configure ProxyPass based on full url instead of trailing path

目前我在我的 Apache httpd.conf 文件中配置了以下 ProxyPass。

目标是在 http://myurl.com:port1/mypath to one balance group, and then have any additional Proxypass go to http://myurl.com:port2/mypath 上有一个 Proxypass 到任何其他平衡组。

这是我目前的代码,它显然只能基于 /mypath 工作,不能继续进行 URL。问题是我的两个 /mypath 是相同的,只是 URL.

中的 port1 和 port2 不同

我目前正在侦听上面在 Apache 中定义的 Port1 和 Port2,但我目前无法区分进入 myurl.com:port1 的人是否会被定向到平衡管理器中的 Group1 或 Group2因为两者的 /mypath 相同。

<IfModule proxy_module>
   ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
   ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
    <Proxy balancer://Group1>
            BalancerMember ajp://myurl.com:portX/mypath route=TC01
    </Proxy>
    <Proxy balancer://Group2>
            BalancerMember ajp://myurl.com:portY/mypath route=TC01
    </Proxy>
</IfModule>

以下内容不起作用,但这实际上是我正在尝试做的事情:

<IfModule proxy_module>
   ProxyPass http://myurl.com:port1/mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
   ProxyPass http://myurl.com:port2/mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
    <Proxy balancer://Group1>
            BalancerMember ajp://myurl.com:portX/mypath route=TC01
    </Proxy>
    <Proxy balancer://Group2>
            BalancerMember ajp://myurl.com:portY/mypath route=TC01
    </Proxy>
</IfModule>

ProxyPass cannot occur within <If> section, seems like you are left with splitting your configuration in two VirtualHosts:

<VirtualHost *:port1>
    ServerName myurl.com
    <Proxy balancer://Group1>
        BalancerMember ajp://myurl.com:portX/mypath route=TC01
    </Proxy>
    ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
</VirtualHost>

<VirtualHost *:port2>
    ServerName myurl.com
    <Proxy balancer://Group2>
        BalancerMember ajp://myurl.com:portY/mypath route=TC01
    </Proxy>
    ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
</VirtualHost>