コネクタを使用してApache-webserverからTomcatにアクセスしたい。私はドキュメントに固執しました:http : //tomcat.apache.org/connectors-doc/generic_howto/quick.html私は、Debian-(Squeeze)-Systemで使用されているディレクトリ構造と一致するように少しだけ変更しました。
そこで、以下を/etc/apache2/httpd.confに追加しました:
# Load mod_jk module
# Update this path to match your modules location
#LoadModule jk_module libexec/mod_jk.so
# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
#AddModule mod_jk.c
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /examples to worker named worker1 (ajp13)
JkMount /tomcat7/* worker1
パッケージシステム(libapache2-mod-jk)を介してmod_jkをインストールした後、モジュールのロードをコメントアウトしました。
私のworkers.propertiesは次のようになります:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Tomcat 7は、Squeezeのパッケージではないため、Apacheのアーカイブから直接インストールされます。Tomcat 7は実行中で、独自のポート(8180、package-systemのtomcat6と衝突しない)で到達可能です。私が理解している限り、http:// host / tomcat7 /を含む tomcat-siteが表示されるはずです。しかし、代わりに404が表示されます。なにが問題ですか?
量子がログレベルをデバッグに設定するようにほのめかした後(ありがとう)、私はそれを行い、mod_jk.logに次のエラーメッセージを見つけました: 'jk_map_to_storage :: mod_jk.c(3585):176.9.9.55:/tomcat7のURIマップがありません/ '。私はそれをググって、http://old.nabble.com/mod_jk%2C-missing-uri-map-td23984359.htmlを見つけました
したがって、httpd.confで設定されたオプションはVirtualHostsでは使用されませんでした。VirtualHostに「JkMountCopy On」を追加し、最初に(httpd 404ではなく)Tomcat 404を取得しました。ここで問題は、マウントされたまったく同じURIにアクセスしようとするため、私の場合は/ tomcat7です。代わりに、マウントとしてwebappの名前を使用しましたが、すべて問題ありません。