2016-11-14 9 views
0

Tomcatで動作するアプリケーションのクラスタリングとロードバランシングを行いたいと思います。私は、ubuntu、Apache 2.4.18バージョン、2つのTomcat 8.5インスタンスを使用しています。私はこれでmod_jkを試しましたが、それは私のために働いていません。次Apacheクラスタリングとubuntuのtomcat 8によるロードバランシング

は、ApacheとTomcat

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1"> <!-- server2 for another instance --> 

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> 

    <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> 
    <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 

     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
     <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
     </Sender> 

     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="50"/> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/> 
    </Channel> 
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> 
    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
</Cluster> 

<Realm className="org.apache.catalina.realm.LockOutRealm"> 
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 
</Realm> 

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 
</Host> 

</Engine> 
のserver.xml jk.confで

<IfModule jk_module> 

JkWorkersFile /etc/apache2/conf/workers.properties 

JkLogFile /etc/apache2/log/mod_jk.log 

JkLogLevel info 

JkShmFile /etc/apache2/log/jk-runtime-status 

JkWatchdogInterval 60 

JkMount /clusterjsp/* loadbalancer 
JkMount /jk-status status 

<Location /jk-status> 
    JkMount jk-status 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
</Location> 

<Location /jk-manager> 
    JkMount jk-manager 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
</Location> 
</IfModule> 
workers.properiesで

worker.list=loadbalancer,status 
worker.server1.port=8009 
worker.server1.host=127.0.0.1 
worker.server1.type=ajp13 
worker.server1.connection_pool_size=200 
worker.server1.connection_pool_timeout=600 
worker.server1.socket_keepalive=1 

worker.server2.port=7009 
worker.server2.host=127.0.0.1 
worker.server2.type=ajp13 
worker.server2.connection_pool_size=200 
worker.server2.connection_pool_timeout=600 
worker.server2.socket_keepalive=1 

worker.server1.lbfactor=1 
worker.server2.lbfactor=1 

worker.loadbalancer.type=lb 
worker.loadbalancer.balance_workers=server1,server2 

worker.status.type=status 

との両方のTomcatでの私の構成です

apache2.confに何も変更を加えていないか、apacheホームディレクトリにhttpd.confがありません。私は同じアプリケーションを両方のTomcatサーバーにデプロイしています。http://localhost:8080/clusterjsphttp://localhost:7070/clusterjspを使用していますが、http://localhost/clusterjspと入力すると404エラーが表示されますが、http://localhostにはApacheのデフォルトページが表示されます。

私の設定に間違っているものや何が間違っているのか教えてください。

答えて

0

おそらく、/clusterjsp/*に一致するすべての着信要求をロードバランサにリダイレクトしていますが、コンテキストパスの後には何もない要求は処理していない可能性があります。他のaproachesがあまりにもあります

JkMount /clusterjsp loadbalancer 

、おそらくこれは、テストするeasyest一つです:あなたは自分のjk.confに次の行を追加してみてください可能性があります。

関連する問題