Apache 负载均衡器始终重定向

Apache 负载均衡器始终重定向

我在 Apache 2.4.6 (CentOS) 中设置了 LoadBalancer,除了一件事之外,它运行良好。

当用户打开 Apache 服务器的别名时,当用户单击网站上的某个位置时,它随时会将用户重定向到另一台服务器,这对我来说不太好。我想这样设置 Apache:

如果有人打开页面(并且 Apache 从一台服务器加载网页),如果他/她点击网站上的某个位置,则留在此处,并且不会重定向到另一台服务器。

我怎样才能以这种方式配置Apache?

当前配置如下:

<Proxy balancer://mycluster>
        BalancerMember https://server1:443
        BalancerMember https://server2:443
        Require all granted
        ProxySet lbmethod=bytraffic
</Proxy>
<Location /balancer-manager>
        SetHandler balancer-manager
        Require host example.org
 </Location>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/

我也尝试了这个配置,但仍然没有按预期工作:

ProxyPass "/test" "balancer://mycluster" stickysession=JSESSIONID|jsessionid scolonpathdelim=On
<Proxy "balancer://mycluster">
    BalancerMember "https://server1:443" route=node1
    BalancerMember "https://server2:443" route=node2
Require all granted
</Proxy>


<Location /balancer-manager>
        SetHandler balancer-manager
        Require host example.org
</Location>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/

答案1

听起来你的后端没有设置jsessionidcookie?文档如果您的后端本身没有设置cookie,建议从以下示例开始:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy "balancer://mycluster">
    BalancerMember "http://192.168.1.50:80" route=1
    BalancerMember "http://192.168.1.51:80" route=2
    ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass        "/test" "balancer://mycluster"
ProxyPassReverse "/test" "balancer://mycluster"

(注意明确的Header add Set-Cookie。)

相关内容