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
jsessionid
백엔드가 쿠키를 설정하지 않는 것 같나요 ?문서백엔드가 쿠키 자체를 설정하지 않는 경우 다음 예부터 시작하는 것이 좋습니다.
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
.)