Apache,Tomcat:显示空白页面的负载平衡和故障转移配置。
我正在使用mod_jk为我们现有的Apache tomcat安装程序添加负载平衡和故障切换功能。为此,我设置了2个Tomcat实例。我做了一些改变,并将粘贴它们。我没有在httpd或tomcat的日志中发现任何错误,而且我只看到一个空白页。我究竟做错了什么?Apache,Tomcat:显示空白页面的负载平衡和故障转移配置。
Apache网络服务器的配置:
workers.properties:
worker.list=loadbalancer
worker.server1.port=8010
worker.server1.host=localhost
worker.server1.lbfactor=1
worker.server1.type=ajp13
worker.server2.port=8011
worker.server2.host=localhost
worker.server2.type=ajp13
worker.server2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=server1,server2
worker.loadbalancer.sticky_session=true
worker.myworker.sticky_session_force=True
apache2.conf/httpd.conf中:
Include sites-enabled/
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod_jk.log
JkMount /* loadbalancer
/000-默认情况下启用的站点 - :只包含:
JkMountCopy On
首先tomcat的server.xml中:
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000"/>
<Connector port="8010" protocol="AJP/1.3" redirectPort="8081" 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="server1">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
</Cluster>
</Engine>
第二Tomcat的server.xml中:
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000"/>
<Connector port="8011" protocol="AJP/1.3" redirectPort="8080" 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="server2">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
</Cluster>
</Engine>
即使我关闭任何tomcat的,我看到的是一个空白页。我究竟做错了什么?请让我知道。非常感谢.. :-)
通常不值得指定VirtualHost
以外的任何JkMount
指令。你应该具体并将它们映射到每个VH。
JkMountCopy
应该为你工作。我怀疑其他一些配置是干扰它的。
是的,我必须把它放在VH里面,因为我们有SSL,所以我创建了一个_default_:443的VH,里面放了这些。虽然当我重新启动apache时,我不断收到警告,没有定义80端口的主机。我们的整个web应用都运行在https上,如/ **。 –
如果您收到有关“没有80端口的主机”的警告,也许您应该停止在端口80上监听httpd。 –
我在哪里听80端口,我检查了ssl.conf和apache2.conf。在sites-enabled/000-default中也没有。 –
httpd日志文件中的任何消息?或者在'mod_jk.log'中?请注意,如果您正在使用粘性会话,则除非绝对需要故障转移,否则设置群集并不是非常必要。 –
@ChristopherSchultz:问题出在sites-enabled/000-default。当我将JkMountCopy更改为JkMount/* loadbalancer时,它工作正常。 –