我正在做一项任务,在这个任务中,我必须负载平衡两个tomcat实例,这样它们之间也共享一个公共会话,当其中一个失败时,另一个可以处理这个任务。
第一个任务似乎可以工作,因为当Tomcat版本都在线时,似乎就没有问题了。
我面临的第二个问题是,如果一个tomcat失败了,另一个tomcat实例应该继续运行,并为正在发出的请求服务,但这并没有发生。一旦任何一个Apache实例发生故障,我就会得到一个503,服务不可用。请告诉我如何解决这个问题,并测试哪个用户来自哪个tomcat实例。所做的更改:站点启用/000-默认:
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8010 route=jvmroute-first connectiontimeout=10
BalancerMember ajp://localhost:8011 route=jvmroute-second connectiontimeout=10
ProxySet stickysession=JSESSIONID
Order Deny,Allow
Deny from none
Allow from all
</Proxy>
<VirtualHost *:80>
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>第一只猫的server.xml:
<Connector port="8080" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024"
connectionTimeout="20000"
redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force"
compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore" keystorePass="password" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Connector port="8010" protocol="AJP/1.3" redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvmroute-first">
// No modifications within Engine
</Engine>第二个tomcat实例:
<Connector port="8081" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024"
connectionTimeout="20000"
redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force"
compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore.jks" keystorePass="password" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Connector port="8011" protocol="AJP/1.3" redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>为什么会发生这种事。任何想法线索。非常感谢。:-)
编辑
负载均衡器好像出了点问题,过了一会儿我就会出错,检查屏幕截图。

发布于 2015-12-09 12:38:46
这可能是因为您没有在Tomcat end上启用会话复制。由于在Apache上启用了粘性会话,所以请求总是基于JSESSIONID的检查进行路由。
使用故障转移在Tomcat实例中实现集群,以便在失败时将任何失败的请求重新路由到第二个tomcat服务器。
https://serverfault.com/questions/741803
复制相似问题