Apache, Tomcat und Mod_JK

Vatar

Erfahrenes Mitglied
Also erst mal Dank an Thomas für die Beantwortung des vorausgegenagen Posts.

Ich habe bezüglich mod_jk mehrere Tuts gefunden aber ein kleines Problem.
Ich habe mir die dll für die 1.2er Version heruntergeladen und in den modules-Ordner von Apache kopiert. Die httpd.conf habe ich folgendermaßen erweitert:
Code:
LoadModule mod_jk modules/mod_jk.dll
Leider bekomme ich eine Fehlermeldung wenn ich mittels httpd -t die Syntax prüfe:
Code:
httpd: Syntax error on line 115 of C:/Programme/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/Programme/Apache Software Foundation/Apache2.2/modules/mod_jk.dll into server: Die angegebene Prozedur wurde nicht gefunden.

Thx
 
Hallo!

Ich hab hier das selbe Problem wenn ich einen Apache 2.2.x
Code:
E:\httpd\Apache2\bin>E:/xampp/xampp/apache/bin/apache -v
Server version: Apache/2.2.2
Server built:   May  9 2006 14:08:48

Jedoch funktionierts mit einem 2.0.55er wunderbar:
Code:
E:\httpd\Apache2\bin>apache -v
Server version: Apache/2.0.55
Server built:   Oct  9 2005 19:16:56

Dort kann das Mod_JK Modul geladen werden. Vielleicht ist das Mod_JK Modul nur innerhalb der 2.0.xer Reihe kompatibel und muss für Apache 2.2.xxx erst noch entsprechend gebaut werden.

Gruß Tom
 
Leider finde ich keine 2.0.55er Version sondern nur eine 2.0.58 und mit der funktionierts auch nicht. Ich nutze diese diese Downloadquelle.
 
Zuletzt bearbeitet:
Ich konnte nun Apache und mod_jk so einstellen, das der Tomcat genutzt wird. Allerdings funktionieren nur die Tomcat-Beispiele. Wenn ich meine opencms-webapp aufrufe, bekomme ich die Meldung er könne es nicht finden.
httpd.conf
Code:
# Mod_JK Connector
LoadModule jk_module modules/mod_jk.dll

JkWorkersFile "C:/Programme/Apache Software Foundation/Tomcat/conf/workers.properties"
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat
JkMount /*.jsp tomcat-worker1
	JkMount /*.html tomcat-worker1
	JkMount /*.htm tomcat-worker1
    JkMount /*/servlet/ tomcat-worker1	
    JkAutoAlias "C:/Programme/Apache Software Foundation/Tomcat/webapps"
Ich möchte alle requests über den Tomcat abwickeln. Komischerweise komme ich mit http://localhost:8080 auch nicht auf die Tomcat-Startseite so wie es eigentlich sein sollte.

Thx
 
Also irgendwie komm ich einfach nicht weiter. Wie gesagt, ich möchte einfach alle requests eines bestimmten Contexts über den Apache an Tomcat weiterleiten. Bisher funktionieren nur die Tomcat-Beispiele (aber nicht OpenCMS)
 
Ich hänge immer noch an der Baustelle Tomcat über Apache.

Ich habe für mod_jk mal den Debug-Level tracce eingestellt und folgendes kommt dabei heraus wenn ich http://localhost:8080/jsp-examples eingebe (die funktionieren jetzt irgendwie auch nicht mehr)
Code:
[Thu Jul 06 00:52:21 2006]  [jk_uri_worker_map.c (445)]: Into jk_uri_worker_map_t::map_uri_to_worker
[Thu Jul 06 00:52:21 2006]  [jk_uri_worker_map.c (459)]: Attempting to map URI '/jsp-examples/'
[Thu Jul 06 00:52:21 2006]  [jk_uri_worker_map.c (483)]: jk_uri_worker_map_t::map_uri_to_worker, Found a context match tomcat-worker1 -> /
[Thu Jul 06 00:52:21 2006]  [mod_jk.c (1689)]: Into handler r->proxyreq=0 r->handler=jakarta-servlet r->notes=6133672 worker=tomcat-worker1
[Thu Jul 06 00:52:21 2006]  [jk_worker.c (90)]: Into wc_get_worker_for_name tomcat-worker1
[Thu Jul 06 00:52:21 2006]  [jk_worker.c (94)]: wc_get_worker_for_name, done found a worker
[Thu Jul 06 00:52:21 2006]  [mod_jk.c (472)]: agsp=8080 agsn=localhost hostn=localhost shostn=localhost cbsport=8080 sport=8080 
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (1741)]: Into jk_worker_t::get_endpoint
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (1367)]: Into jk_endpoint_t::service
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (257)]: Into ajp_marshal_into_msgb
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (425)]: ajp_marshal_into_msgb - Done
[Thu Jul 06 00:52:21 2006]  [jk_connect.c (136)]: Into jk_open_socket
[Thu Jul 06 00:52:21 2006]  [jk_connect.c (143)]: jk_open_socket, try to connect socket = 836 to 127.0.0.1:8009
[Thu Jul 06 00:52:21 2006]  [jk_connect.c (159)]: jk_open_socket, after connect ret = 0
[Thu Jul 06 00:52:21 2006]  [jk_connect.c (168)]: jk_open_socket, set TCP_NODELAY to on
[Thu Jul 06 00:52:21 2006]  [jk_connect.c (185)]: jk_open_socket, return, sd = 836
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (701)]: In jk_endpoint_t::ajp_connect_to_endpoint, connected sd = 836 to 127.0.0.1:8009
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (737)]: sending to ajp13 #396
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (1035)]: ajp_send_request 2: request body to send 0 - request body to resend 0
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (851)]: received from ajp13 #45
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (477)]: ajp_unmarshal_response: status = 400
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (483)]: ajp_unmarshal_response: Number of headers is = 0
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (851)]: received from ajp13 #2
[Thu Jul 06 00:52:21 2006]  [jk_ajp_common.c (1716)]: Into jk_endpoint_t::done, recycling connection
Mir scheint, hier passiert gar nichts (ajp_send_request 2: request body to send 0 - request body to resend 0

Mein workers.properties schaut inzwischen so aus
Code:
      workers.tomcat_home="C:/Programme/Apache Software Foundation/Tomcat"

      ps=/

      # list the workers by name
      worker.list=tomcat-worker1

      # ------------------------
      # First tomcat server
      # ------------------------
      worker.tomcat-worker1.port=8009
      worker.tomcat-worker1.host=localhost
      worker.tomcat-worker1.type=ajp13
      worker.tomcat-worker1.lbfactor=100

Den Tomcat-internen HTTP-Server (Connector) habe ich ausgeschaltet (lief auf Port 9880), der AJP-Connector läuft.

Ich wäre schon froh wenn ich über http://localhost:8080 die Startseite vom Tomcat sehen würde.

Ich habe auch das Gefühl, dass ich mich irgendwie im Kreis drehe und bin für jede Hilfe dankbar.
 
Hallo,

versuch mal mit:

folgende Zeile in workers.properties einfügen

Code:
[uri:/MyWebAppRoot/*]
info=Map dein web app

MyWebAppRoot sollte der root Ordner deiner Applikation sein, unter TomcatHome\webapps\

Gruss
 
Super, danke.

Jetzt haperts zwar auf einmal mit der Anmeldung bei OpenCMS aber das ist dann wieder eine andere Baustelle.

Nochmals Danke
 
... die andere Möglichkeit ist

Code:
JkMount  /MyWebAppRoot/* worker1

in den Apache httpd.conf einzufügen.

worker1 is der worker der du in workers.properties definierst hast
 
Zurück