我正在使用 apache 代理,我想使用带有查询字符串值的代理平衡器成员,但它并没有像我预期的那样工作。
这是我的配置。
Listen 49154
<VirtualHost *:49154>
<Proxy balancer://vncServer>
BalancerMember ws://server1 route=1 retry=1
BalancerMember ws://server2 route=2 retry=1
BalancerMember ws://server3 route=3 retry=1
ProxySet stickysession=JSESSIONID
</Proxy>
RewriteEngine on
RewriteCond %{QUERY_STRING} port=(.*)
#to make ws://server1:(port value from query string)/websockify
RewriteRule (.*) balancer://vncServer:%1/websockify [P]
ProxyPassReverse (.*) balancer://vncServer:%1/websockify
</VirtualHost>
但我检查日志发现,总是连接到 80 端口。
无需平衡器即可正常工作
Listen 49154
<VirtualHost *:49154>
RewriteEngine on
RewriteCond %{QUERY_STRING} port=(.*)
RewriteRule (.*) ws://server1:%1/websockify [P]
ProxyPassReverse (.*) ws://server1:%1/websockify
</VirtualHost>
有没有办法使用查询字符串端口值连接平衡器成员?如能提供任何帮助,我将不胜感激。