Apache:代理平衡器,在两个通道上发送某些请求

时间:2019-03-01 11:43:42

标签: apache session tomcat networking

我正在开发一个基于Spring-MVC的应用程序,该应用程序在具有反向代理的Apache实例后面运行。当前,该安装程序可以很好地与数据库相关的操作正常运行,但是有某些URL,在调用该URL时,我想将请求发送到两个服务器。示例:/onlinestatus/*。如果用户当前在server1上,则在我们当前的设置下,他不知道server2上的用户。但这是不正确的,因为两个用户都使用相同的平台。我如何指示apache将某些URL传递到两个平台。谢谢。

启用网站/ 000默认:

<VirtualHost *:443>
ServerName www.domain.de
ProxyRequests off
ProxyPreserveHost On
ProxyPass /nagios !
ProxyReceiveBufferSize 4096
ErrorDocument 503 /error/message.html
ProxyPass /error/ !
ProxyPass /error/message.html !
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/letsencrypt/live/www.domain.de-0002/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain.de-0002/private.key
SSLCertificateChainFile /etc/letsencrypt/live/www.domain.de-0002/chain.pem
SSLProxyVerify none 
SSLProxyCheckPeerCN off
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
<Location / >
SetEnvIf Origin ^(https?://.+\.DOMAIN\.de(?::\d{1,5})?)$   CORS_ALLOW_ORIGIN=$1
Header append Access-Control-Allow-Origin  %{CORS_ALLOW_ORIGIN}e   env=CORS_ALLOW_ORIGIN
Header merge  Vary "Origin"
Order allow,deny
Allow from all
</Location>
        ProxyPass / balancer://mycluster/ stickysession=JSESSIONID nofailover=On
<Proxy balancer://mycluster>
       BalancerMember https://SERVER_1_IP:8443 route=server1
</Proxy>
 ProxyPass /balancer-manager !
 ProxyPass / balancer://mycluster/
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

您不能将请求代理到两个服务器。您希望得到什么?两个HTML文档? (如果您的群集增长了,该怎么办:20个HTML文档?)它们将如何显示?

如果您的应用程序在集群中工作,并且让用户知道在集群中工作的其他用户至关重要,那么您需要使该信息在业务层上可用(通过跟踪后端的登录用户-这可能是数据库或集群通信渠道)

如果您“只是”出于系统管理目的需要此信息,例如知道何时安全地使其中一台群集计算机停止服务-然后只需利用您的负载均衡器的状态信息页面即可。