Я настроил прокси apache (2.4.41) с stickysession.
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://testgroup>
Order deny,allow
Allow from all
BalancerMember http://server1:8090 route=node1
BalancerMember http://server2:8090 route=node2
ProxySet stickysession=ROUTEID
</Proxy>
Вот конфиг vhost:
<VirtualHost *:80>
ServerName testserver.mydomain
ProxyPreserveHost On
ProxyPass / balancer://testgroup/ stickysession=ROUTEID nofailover=On timeout=10 lbmethod=byrequests
ProxyPassReverse / balancer://testgroup/
</VirtualHost>
Сайт доступен и работает , Например: повар ie .node1 устанавливается по первому запросу. Когда я теперь go отправляю балансирующему менеджеру и отключаю узел 1 для проверки «отработки отказа», следующий запрос к сайту завершается неудачно и говорит
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
, а также в журнале apache говорится:
[proxy_balancer:error] [pid XXX] [client xx.xx.xx.xx:xxxx] AH01167: balancer://testgroup: All workers are in error state for route (node1)
... чтобы все узлы находились в состоянии ошибки, но ему следует изменить маршрут на узел2! Но это не так. Похоже, что прокси не переключается на node2! Я могу повторить тест наоборот с node2 - те же результаты.
У вас есть идеи?
Спасибо большое!