web-dev-qa-db-ja.com

Httpdmod_clusterとTomcatを使用した負荷分散が機能しない

Httpd、mod_cluster、Tomcatを使用してロードバランサーをセットアップしようとしています。私のHttpdは、Tomcatが実行されているIP192.168.9.73の同じサーバーで実行されています。これが私のHttpd設定です-

Listen *:9999

<VirtualHost *:9999>

 ManagerBalancerName cluster

 <Directory />
  Order deny,allow
  Deny from none
  Allow from all
 </Directory>

 ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
 ProxyPassReverse / balancer://cluster/

 KeepAliveTimeout 300
 MaxKeepAliveRequests 0
 ServerAdvertise On
 AdvertiseGroup 224.0.1.105:23364
 AdvertiseFrequency 5
 <Location /mod_cluster_paas>
  SetHandler mod_cluster-manager
  Order deny,allow
  Deny from none
  Allow from all
 </Location>

</VirtualHost>

およびTomcatserver.xml-

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
    <Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" proxyList="192.168.9.73:9999"/>

    <Cluster className="org.Apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">

          <Manager className="org.Apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/>

         <Channel className="org.Apache.catalina.tribes.group.GroupChannel">

         <Membership className="org.Apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>

          <Receiver className="org.Apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5000" selectorTimeout="100" maxThreads="6"/>

         <Sender className="org.Apache.catalina.tribes.transport.ReplicationTransmitter">

         <Transport className="org.Apache.catalina.tribes.transport.nio.PooledParallelSender"/>

          </Sender>

          <Interceptor className="org.Apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

          <Interceptor className="org.Apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

     <Interceptor className="org.Apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

     </Channel>

     <ClusterListener className="org.Apache.catalina.ha.session.ClusterSessionListener"/>

     </Cluster>
</Engine>

このチュートリアルに従ってロードバランサーをセットアップしましたが、機能しませんでした。 httpdエラーログでhttpdとTomcatを起動した後、このエラーメッセージが表示されます-

[Wed Mar 13 18:23:51 2013] [error] proxy: CLUSTER: (balancer://cluster). All workers are in error state

192.168.9.73:9999を開こうとするときはいつでも

1
code13

設定に誤りがありました。 mod_clusterページのチュートリアルに従い、EnableMCPMReceive属性を追加しました。

mod_cluster 参照リンク

1
code13