如何配置 apache httpd 负载平衡,其工作程序仅在路径上不同,而在主机上没有区别?

如何配置 apache httpd 负载平衡,其工作程序仅在路径上不同,而在主机上没有区别?

如果工作者仅在路径上有所不同,而在主机上没有差异,那么如何配置 apache httpd 中的负载平衡?

例如,我有一个公共 URL http://www.example.com/myapp,它应该被负载平衡到内部域http://internal.domain.com/myapp1http://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>

或者类似这样的疯狂事情。

相关内容