2016-01-11 72 views
1

我正在使用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時,它工作正常。 –

回答

0

通常不值得指定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中也沒有。 –

相關問題