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的,我看到的是一个空白页。我究竟做错了什么?请让我知道。非常感谢.. :-)

+0

httpd日志文件中的任何消息?或者在'mod_jk.log'中?请注意,如果您正在使用粘性会话,则除非绝对需要故障转移,否则设置群集并不是非常必要。 –

+0

@ChristopherSchultz:问题出在sites-enabled/000-default。当我将JkMountCopy更改为JkMount/* loadbalancer时,它工作正常。 –

通常不值得指定VirtualHost以外的任何JkMount指令。你应该具体并将它们映射到每个VH。

JkMountCopy应该为你工作。我怀疑其他一些配置是干扰它的。

+0

是的,我必须把它放在VH里面,因为我们有SSL,所以我创建了一个_default_:443的VH,里面放了这些。虽然当我重新启动apache时,我不断收到警告,没有定义80端口的主机。我们的整个web应用都运行在https上,如/ **。 –

+0

如果您收到有关“没有80端口的主机”的警告,也许您应该停止在端口80上监听httpd。 –

+0

我在哪里听80端口,我检查了ssl.conf和apache2.conf。在sites-enabled/000-default中也没有。 –