Ich möchte über den Apache-Webserver über Konnektoren auf Tomcat zugreifen. Ich habe mich an die Dokumentation gehalten: http://tomcat.apache.org/connectors-doc/generic_howto/quick.html Ich habe sie nur ein wenig geändert, um sie an die auf meinem Debian- (Squeeze) -System verwendete Verzeichnisstruktur anzupassen.
Also habe ich /etc/apache2/httpd.conf Folgendes hinzugefügt:
# 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
Ich habe das Laden des Moduls auskommentiert, da dies bereits geschieht, nachdem ich mod_jk über das Paketsystem (libapache2-mod-jk) installiert habe.
Meine Arbeiter.Eigenschaften sehen so aus:
# 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 wird direkt aus dem Archiv von Apache installiert, da es sich nicht um ein Paket in Squeeze handelt. Tomcat 7 läuft und ist über seinen eigenen Port erreichbar (8180, um nicht mit Tomcat6 aus dem Paketsystem zu kollidieren). Soweit ich weiß , sollte ich jetzt die Tomcat-Site mit http: // host / tomcat7 / sehen . Aber ich bekomme stattdessen eine 404. Was ist falsch?
Nachdem quanta angedeutet hatte, die Protokollstufe auf Debug zu setzen (danke), tat ich das und fand die folgende Fehlermeldung in mod_jk.log: 'jk_map_to_storage :: mod_jk.c (3585): fehlende uri map für 176.9.9.55:/tomcat7 / '. Ich habe danach gegoogelt und http://old.nabble.com/mod_jk%2C-missing-uri-map-td23984359.html gefunden
Daher wurden die in httpd.conf festgelegten Optionen in VirtualHosts nicht verwendet. Ich habe meinem VirtualHost 'JkMountCopy On' hinzugefügt - und zuerst einen Tomcat 404 (anstelle des httpd 404) erhalten. Problem hier, dass er versucht, auf genau den gleichen gemounteten URI zuzugreifen, also in meinem Fall / tomcat7. Ich habe stattdessen den Namen der Webanwendung als Mount verwendet und alles ist in Ordnung für mich.