Zusammenspiel Tomcat & Apache
Hallo zusammen! Ich habe mal eine prinzipielle Frage zum Zusammenspiel von Tomcat und Apache - im speziellen, wenn mehrere Tomcats im Einsatz sind. Der Apache kann ja JSP Anfrage an den Tomcat durchreichen, wenn man das mod_jk installiert und die workers.properties entsprechend anlegt. In einem virtuellen Host kann ich mittels des Befehls JkMount /*.jsp tomcat_worker alles gezielt an den Tomcat weiterleiten. In der worker.properties ist dann ein entsprechender worker eingetragen - z.B.: worker.tomcat1.port=8009 worker.tomcat1.host=10.20.30.40 worker.tomcat1.type=ajp13 worker.tomcat1.cachesize=10 worker.tomcat1.cache_timeout=600 worker.tomcat1.socket_keepalive=1 worker.tomcat1.recycle_timeout=300 Und fertig! Wie ist das nun, wenn ich ich mehrere Tomcats ansprechen möchte - evtl. auch auf anderen Servern? Woher weiß der Apache wohin er sich wenden soll? Es gibt ja keinerlei Einstellungen, die sagen: für den virtuellen Host X wende Dich an Tomcat A und für den virtuellen Host Y gehe halt zu Tomcat B. Wie funktioniert das ganze? Bin happy über jeden Tip! Viele Grüße Fritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Fritz Mundtart wrote:
Hallo zusammen!
Ich habe mal eine prinzipielle Frage zum Zusammenspiel von Tomcat und Apache - im speziellen, wenn mehrere Tomcats im Einsatz sind. Der Apache kann ja JSP Anfrage an den Tomcat durchreichen, wenn man das mod_jk installiert und die workers.properties entsprechend anlegt.
In einem virtuellen Host kann ich mittels des Befehls
JkMount /*.jsp tomcat_worker
alles gezielt an den Tomcat weiterleiten. In der worker.properties ist dann ein entsprechender worker eingetragen - z.B.:
worker.tomcat1.port=8009 worker.tomcat1.host=10.20.30.40 worker.tomcat1.type=ajp13 worker.tomcat1.cachesize=10 worker.tomcat1.cache_timeout=600 worker.tomcat1.socket_keepalive=1 worker.tomcat1.recycle_timeout=300
Und fertig!
Wie ist das nun, wenn ich ich mehrere Tomcats ansprechen möchte - evtl. auch auf anderen Servern? Woher weiß der Apache wohin er sich wenden soll? Es gibt ja keinerlei Einstellungen, die sagen: für den virtuellen Host X wende Dich an Tomcat A und für den virtuellen Host Y gehe halt zu Tomcat B.
Wie funktioniert das ganze? Bin happy über jeden Tip!
Viele Grüße Fritz
Hi, du musst in den workers.properties mehrere worker vom typ ajp13 definieren. zunaechst definierst du mit workers.list=ajp13, ajp13second die namen deiner worker, dann konfigurierst du sie mit:worker.ajp13.port=8009 worker.ajp13.host=localhost oder ip worker.ajp13.type=ajp13 # # Specifies the load balance factor when used with # a load balancing worker. # Note: # ----> lbfactor must be > 0 # ----> Low lbfactor means less work done by the worker. #worker.ajp13.lbfactor=1 # # Specify the size of the open connection cache. #worker.ajp13.cachesize worker.ajp13second.port=8016 worker.ajp13second.host=secondhost oder IP worker.ajp13second.type=ajp13 Allerdings muss du dann auch dem jeweiligen tomcat noch den richtigen port in der server.xml "mitgeben" gruss/torbjoern -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Torbjörn, vielen Dank für die schnelle Antwort! Torbjörn Gripp schrieb:
[...] du musst in den workers.properties mehrere worker vom typ ajp13 definieren. zunaechst definierst du mit workers.list=ajp13, ajp13second die namen deiner worker, dann konfigurierst du sie [...] Hmm ... ja so weit war ich fast auch schon, aber was ich nicht begreife: woher weiß der Apache an wen er sich wenden soll? Wie kommt er zur workers.properties? Wenn ich einen weiteren Tomcat habe, der auf einer ganz anderen Maschine installiert ist, dann würde ich auch dort eine workers.properties anlegen. Aber ich bin mir sicher, daß der Apache dort nicht hin findet!
Oder hab ich grade ein Brett vorm Kopf?! ;-) Viele Grüße Fritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Fritz Mundtart wrote:
Hi Torbjörn,
vielen Dank für die schnelle Antwort!
Torbjörn Gripp schrieb:
[...] du musst in den workers.properties mehrere worker vom typ ajp13 definieren. zunaechst definierst du mit workers.list=ajp13, ajp13second die namen deiner worker, dann konfigurierst du sie [...] Hmm ... ja so weit war ich fast auch schon, aber was ich nicht begreife: woher weiß der Apache an wen er sich wenden soll? Wie kommt er zur workers.properties? Wenn ich einen weiteren Tomcat habe, der auf einer ganz anderen Maschine installiert ist, dann würde ich auch dort eine workers.properties anlegen. Aber ich bin mir sicher, daß der Apache dort nicht hin findet!
Oder hab ich grade ein Brett vorm Kopf?! ;-)
Viele Grüße Fritz
Nee, hast du wahrscheinlich nicht.. Du musst nur in die jk.conf bzw mod_jk.conf (die der apache beim start einbindet) hineinschauen, dort wird die workers.properties angegeben und auch die jk-mounts definiert, also das was der apache wo "anhaengen" soll gruss/torbjoern -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Torbjörn Gripp schrieb:
[...] Du musst nur in die jk.conf bzw mod_jk.conf (die der apache beim start einbindet) hineinschauen, dort wird die workers.properties angegeben und auch die jk-mounts definiert, also das was der apache wo "anhaengen" soll
Ah! Das klingt gut! :-) ... hmm ... aber: wo finde ich diese Datei?!? Hab eben mein Filesysterm auf den Kopf gestellt, aber eine mod_jk.conf oder ähnliches ist mir nicht aufgefallen? dbupdate/locate hat keine mod_jk.conf, jk.conf oder ähnliches gefunden :( Die müsste doch im Apache-Bereich liegen, oder? Kurze Info am Rande: habe tomcat 5.5.20 apache 2.2.3 und den tomcat-connector 1.2.20 ... nur falls es wichtig ist .... ;-) Gruß Fritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Fritz,
Ah! Das klingt gut! :-) ... hmm ... aber: wo finde ich diese Datei?!? Hab eben mein Filesysterm auf den Kopf gestellt, aber eine mod_jk.conf oder ähnliches ist mir nicht aufgefallen? dbupdate/locate hat keine mod_jk.conf, jk.conf oder ähnliches gefunden :(
Die müsste doch im Apache-Bereich liegen, oder?
Kurze Info am Rande: habe tomcat 5.5.20 apache 2.2.3 und den tomcat-connector 1.2.20 ... nur falls es wichtig ist .... ;-)
Ich habe das ueber die JkMount-Directive gemacht. Allerdings laufen meine beiden Tomcats und die Apaches auch unter verschiedenen Usern. Ein Paar unter 'nobody' und ein anderes unter einem anderen User, wegen speziellen Berechtigungen. Im ersten Apache httpd.conf: JkMount /*.jsp nobody_tomcat im anderen JkMount /*.jsp otheruser_tomcat Wahrscheinlich ist das aber nicht DIE Loesung, die Du suchst. Gruss Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Fritz Mundtart wrote:
Ah! Das klingt gut! :-) ... hmm ... aber: wo finde ich diese Datei?!? Hab eben mein Filesysterm auf den Kopf gestellt, aber eine mod_jk.conf oder ähnliches ist mir nicht aufgefallen? dbupdate/locate hat keine mod_jk.conf, jk.conf oder ähnliches gefunden :(
Die müsste doch im Apache-Bereich liegen, oder?
Kurze Info am Rande: habe tomcat 5.5.20 apache 2.2.3 und den tomcat-connector 1.2.20 ... nur falls es wichtig ist .... ;-)
Gruß Fritz
Hi, wenn du openSuSE installiert hast findest du alles unter: /usr/share/doc/packages/apache2-mod_jk sowohl eine jk.conf als auch die workers.properties. Dazu gibts dann noch als "Schmankerl" ein README.SuSE gruss/torbjoern -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Torbjörn, hallo Werner! Vielen Dank für Eure Hilfe!! Ich hab die Lösung :-) Also, wenn man Tomcat und Apache manuell (ohne Yast) und in einer aktuellen Version (Januar 2007) installiert, dann gibt es erstmal kein jk_mod.conf oder jk.conf und auch keine workers.properties! 1. Apache und Tomcat wie gewohnt installieren. Tomcat und Apache können dabei auch auf unterschiedlichen Rechnern liegen. 2. den tomcat-connector (apache.org) auf der Apache-Maschine installieren (ehemals mod_jk) 3. workers.properties neu anlegen ---------------------------------------------------------------------------------- worker.list=myworker1 worker.myworker1.port=8009 worker.myworker1.host=<hostA> worker.myworker1.type=ajp13 worker.list=myworker2 worker.myworker2.port=8009 worker.myworker2.host=<hostB> worker.myworker2.type=ajp13 ---------------------------------------------------------------------------------- Speicherort nach Belieben, z.B. /usr/local/apache2/conf/ 4. httpd.conf anpassen ---------------------------------------------------------------------------------- LoadModule jk_module modules/mod_jk.so JkWorkersFile /path/to/workers.properties ---------------------------------------------------------------------------------- 5. in virtuellen Host-Direktiven entsprechend folgende Zeile einbauen ---------------------------------------------------------------------------------- JkMount /*.jsp myworker1 JkMount /*.jsp myworker2 ---------------------------------------------------------------------------------- 6. Apache neu starten 7. fertig Ich hoffe, ich hab jetzt nichts vergessen! Es war hier ein kleines Bastel-Gewusel ;) Viele Grüße Fritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
FRANKE, WERNER (Werner)
-
Fritz Mundtart
-
Torbjörn Gripp