反向代理和负载均衡器

reverse proxy and Load balancer

这是 Apache 反向代理和负载均衡器,website/reports url 不会出现

   <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>

如果我指向单个服务器,website/reports url 工作

<VirtualHost *:443>
   <IfModule mod_proxy.c>
      ProxyPass / https://serverapp01.com

/ retry=1 acquire=3000 timeout=1200 Keepalive=On ProxyPassReverse / https://serverapp01.com

网站在这两种情况下都有效,关于我遗漏的任何想法 谢谢 内特

如果您的后端服务器正在使用 SessionCookie,那么您可以将相同的 cookie 用于粘性会话。

<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

如果您的后端服务器没有使用会话 Cookie,那么您可以使用路由进行粘性会话。

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/"