私はApache 2.4.6(CentOS)でLoadBalancerを設定しましたが、1つを除いてうまくいきます。
ユーザーがApacheサーバーのエイリアスを開くと、ユーザーがWebサイトのどこかをクリックしたときにいつでも別のサーバーにユーザーがリダイレクトされます。 Apacheを次のように設定したいと思います。
誰かがページを開いて(ApacheがあるサーバーからWebページをロードしている場合)、Webサイトのどこかをクリックすると、ページはそのまま残り、別のサーバーにリダイレクトされません。
このように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
jsessionid
バックエンドがCookieを設定していないと思いますか?文書バックエンドが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
。)