如果工作者仅在路径上有所不同,而在主机上没有差异,那么如何配置 apache httpd 中的负载平衡?
例如,我有一个公共 URL http://www.example.com/myapp
,它应该被负载平衡到内部域http://internal.domain.com/myapp1
和http://internal.domain.com/myapp2
(同一主机,不同的路径)
更新: 问题是,以下配置(我通常使用)不允许在一个内部主机上运行不同的路径,当每个内部主机都有一个上下文 /myapp 运行时它才有效。
ProxyPass /myapp balancer://workers/myapp
ProxyPassReverse /myapp balancer://workers/myapp
<Proxy balancer://workers>
BalancerMember http://internal1.domain.com
BalancerMember http://internal2.domain.com
</Proxy>
我没有找到地图/myapp到
internal1.domain.com/myapp1
internal1.domain.com/myapp2
internal2.domain.com/myapp1
internal2.domain.com/myapp2
答案1
似乎您必须通过 来运行 URL mod_rewrite
。因此您需要,例如,
Listen localhost:8180
Listen localhost:8181
<Proxy balancer://workers>
BalancerMember http://localhost:8180
BalancerMember http://localhost:8181
</Proxy>
<VirtualHost localhost:8180>
RewriteEngine On
RewriteRule ^/myapp(.*)$ http://internal.domain.com/myapp1$1 [P]
<VirtualHost>
<VirtualHost localhost:8181>
RewriteEngine On
RewriteRule ^/myapp(.*)$ http://internal.domain.com/myapp2$1 [P]
<VirtualHost>
或者类似这样的疯狂事情。