这里是Apache反向代理和负载均衡器,websitereports的网址没有出现。
<IfModule mod_proxy.c>
ProxyPreserveHost On
<Proxy balancer://app0102>
BalancerMember https://serverapp01.com
BalancerMember https://serverapp02.com
</Proxy>
ProxyPass / "balancer://app0102/"
ProxyPassReverse "/" "balancer://app0102/"
</IfModule>
如果我指向单台服务器,websitereports的网址就会工作。
<VirtualHost *:443>
<IfModule mod_proxy.c>
ProxyPass / https://serverapp01.com
retry=1 acquire=3000 timeout=1200 Keepalive=On ProxyPassReverse https:/serverapp01.com。
网站在这两种情况下都能正常工作,有什么想法吗?
如果你的后台服务器使用的是SessionCookie,那么你可以使用相同的cookie来进行sticky session。
<Proxy balancer://app0102>
BalancerMember https://serverapp01.com route=node1
BalancerMember https://serverapp02.com route=node2
</Proxy>
ProxyTimeout 60
ProxyStatus On
ProxyPass / balancer://app0102/ stickysession=JSESSIONID|jsessionid
ProxyPassReverse / bbalancer://app0102
如果你的后台服务器没有使用SessionCookie,那么你可以使用路由来进行粘性会话。
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy "balancer://app0102">
BalancerMember https://serverapp01.com route=node1
BalancerMember https://serverapp02.com route=node2
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass / balancer://app0102/
ProxyPassReverse / balancer://app0102/
确保你的两个后端服务器都在运行。
我建议在源和终点都使用引号,例如
ProxyPass"" "balancer:/app0102"