apache2とtomcat6の接続に関するmod_jkの問題
質問
Tomcatで実行されているwebappにリクエストを転送するようにmod_jkを設定しようとしています。 (mod_proxy_ajpが道であるところを読んでいますが、最初にこれを理解したいです)。私はtomcatとmod_jkが初めてです。
アクセスしようとしています- http://www.example.com/test/index .jsp
mod_jkを設定した後、Apacheログに400エラーが表示されます。 Tomcatで直接テストすると、webappは正常に動作しています。 mod_jkログファイルで、A / index.jspをマップしようとしているが、400で失敗していることがわかります。したがって、mod_jkが呼び出されていますが、どういうわけかmodjkはwebappを認識していません。
ご協力ありがとうございます
SuSe Linux 11を使用しており、同じボックスでApacheとTomcatを実行しています。
httpd.confはモノリシックファイルです。その中に以下を追加しました-
<IfModule jk_module>
Alias /test/ "/srv/tomcat6/webapps/A"
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkShmFile /usr/local/apache2/logs/mod_jk.shm
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JKMount /test/ A1
JkMount /test/* A1
JkOptions +ForwardSSLCertChain
</IfModule>
workers.propertiesに次のものがあります-
#Define 1 real worker using ajp13
worker.list=A
#Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.ajp13.lbfactor=50
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300
ありがとう、 -バス
解決
ワーカーはAと呼ばれますが、JkMountはA1にマッピングされます。このようなエントリが1つ必要です。
JkMount / test / * A
mod_jkとmod_proxy_ajpの両方を使用しました。 mod_jk接続がより永続的であるため、負荷が高い場合はmod_jkのパフォーマンスが向上します。 mod_proxyは実際にセットアップがはるかに簡単です。
EDIT:ワーカー構成も正しくありません。このようなものでなければなりません
#Define 1 real worker using ajp13
worker.list=A
#Set properties for worker1 (ajp13)
worker.A.type=ajp13
worker.A.host=localhost
worker.A.port=8009
worker.A.lbfactor=50
worker.A.cachesize=10
worker.A.cache_timeout=600
worker.A.socket_keepalive=1
worker.A.socket_timeout=300
他のヒント
モジュールをロードしましたか?
LoadModule jk_module [path to it]
ディレクティブが既にロードされているか、コンパイルされている場合、ディレクティブはtrueになります。