Hi, wir sind gerade dabei, unsere erste Webapp zu deployen. Auf vielfaches Anraten haben wir uns dazu entschlossen, einen httpd vor den Tomcat zu setzen. Wir nutzen Apache 2.2, Tomcat 6 und SLES 11 SP1. Es ist sehr wahrscheinlich, daß später weitere Webapps dazu kommen. Wir möchten, daß die aktuelle Webapp unter host.domain.tld später direkt erreichbar ist, ohne weitere Pfadangaben. Dies kann später auch für weitere Webapps gelten, es wäre dann analog host2.domain.tld usw. Ich weiß aber nicht genau, wie ich das machen soll. Vhosts auf httpd-Seite anlegen kann ich, daß habe ich schon öfters gemacht. Per AJP würde httpd den request dann an tomcat weiterleiten. Dies mache ich mit JKMount Direktiven. Aktuell haben wir sowas: JkMount /mouseidgenes appl01 Aber wie mache ich das, wenn ich ja keine Pfadangaben hinter der TLD haben will (zumindest nicht beim ersten Aufruf der Seite, beim anschließenden Surfen auf der Seite wäre mir das egal) ? Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ? Any ideas ? Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 3826 http://www.helmholtz-muenchen.de/idg Toleranz beinhaltet das Recht, den Intoleranten gegenüber nicht tolerant zu sein Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- 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
Am Dienstag, 7. Juni 2011 schrieb Lentes, Bernd:
wir sind gerade dabei, unsere erste Webapp zu deployen. Auf vielfaches Anraten haben wir uns dazu entschlossen, einen httpd vor den Tomcat zu setzen. Wir nutzen Apache 2.2, Tomcat 6 und SLES 11 SP1. Es ist sehr wahrscheinlich, daß später weitere Webapps dazu kommen. Wir möchten, daß die aktuelle Webapp unter host.domain.tld später direkt erreichbar ist, ohne weitere Pfadangaben. Dies kann später auch für weitere Webapps gelten, es wäre dann analog host2.domain.tld usw. Ich weiß aber nicht genau, wie ich das machen soll. Vhosts auf httpd-Seite anlegen kann ich, daß habe ich schon öfters gemacht. Per AJP würde httpd den request dann an tomcat weiterleiten. Dies mache ich mit JKMount Direktiven. Aktuell haben wir sowas: JkMount /mouseidgenes appl01
Aber wie mache ich das, wenn ich ja keine Pfadangaben hinter der TLD haben will (zumindest nicht beim ersten Aufruf der Seite, beim anschließenden Surfen auf der Seite wäre mir das egal) ?
Wie wäre es mit mod_rewrite? Ich hab auf http://www.knightsoft-net.de auch nur eine fixe HTML-Seite, die Startseite. Alles andere wird mit mod_rewrite nur nach aussen so dargestellt als ob. http://www.knightsoft-net.de/Tipprunde/index.html z.B. wird so umgelenkt: RewriteEngine On RewriteBase / ... RewriteRule Tipprunde\/index\.html$ /servlet/de.KnightSoft.KnightSoftNet.Tipprunde.Servlet?service=Index
Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ?
Müsste gehen, aber damit reichst Du alles einfach an den Tomcat durch, das dürfte nicht Sinn der Sache sein. Der vorgeschaltete Apache sollte dem Tomcat nach Möglichkeit die statischen Sachen abnehemen (Bilder, Scripte, fixe HTML-Seiten, ...), denn darin ist er besser. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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, Am 07.06.2011 21:21, schrieb Manfred Tremmel:
Wie wäre es mit mod_rewrite? Ich hab auf http://www.knightsoft-net.de auch nur eine fixe HTML-Seite, die Startseite. Alles andere wird mit mod_rewrite nur nach aussen so dargestellt als ob. http://www.knightsoft-net.de/Tipprunde/index.html z.B. wird so umgelenkt:
RewriteEngine On RewriteBase / ... RewriteRule Tipprunde\/index\.html$ /servlet/de.KnightSoft.KnightSoftNet.Tipprunde.Servlet?service=Index
Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ? Müsste gehen, aber damit reichst Du alles einfach an den Tomcat durch, das dürfte nicht Sinn der Sache sein. Der vorgeschaltete Apache sollte dem Tomcat nach Möglichkeit die statischen Sachen abnehemen (Bilder, Scripte, fixe HTML-Seiten, ...), denn darin ist er besser. Das hört sich interessant an, wenn man einfach einen Link oder eine Domain weiterreicht zum Tomcat. Muss man bei dieser Lösung innerhalb der Verlinkungen in der jeweiligen Tomcat-Webapp etwas beachten? (Sprich, absolute Verlinkung würde nicht gehen)
Viele Grüße Taner -- 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
Manfred Tremmel schrieb:
Wie wäre es mit mod_rewrite? Ich hab auf http://www.knightsoft-net.de auch nur eine fixe HTML-Seite, die Startseite. Alles andere wird mit mod_rewrite nur nach aussen so dargestellt als ob. http://www.knightsoft-net.de/Tipprunde/index.html z.B. wird so umgelenkt:
RewriteEngine On RewriteBase / ... RewriteRule Tipprunde\/index\.html$ /servlet/de.KnightSoft.KnightSoftNet.Tipprunde.Servlet?service=Index
Ich kenne mich mit mod_rewrite nicht so aus. Werden da quasi einfach requests umgelenkt ?
Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ?
Müsste gehen, aber damit reichst Du alles einfach an den Tomcat durch, das dürfte nicht Sinn der Sache sein. Der vorgeschaltete Apache sollte dem Tomcat nach Möglichkeit die statischen Sachen abnehemen (Bilder, Scripte, fixe HTML-Seiten, ...), denn darin ist er besser.
Die Webapp ist jetzt so gut wie fertig. Das jetzt noch mal Auseinanderbasteln in tomcat und httpd ... Bernd -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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 Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- 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
Am Dienstag, 7. Juni 2011 schrieb Lentes, Bernd:
Manfred Tremmel schrieb:
Wie wäre es mit mod_rewrite? Ich hab auf http://www.knightsoft-net.de auch nur eine fixe HTML-Seite, die Startseite. Alles andere wird mit mod_rewrite nur nach aussen so dargestellt als ob. http://www.knightsoft-net.de/Tipprunde/index.html z.B. wird so umgelenkt:
RewriteEngine On RewriteBase /
...
RewriteRule Tipprunde\/index\.html$ /servlet/de.KnightSoft.KnightSoftNet.Tipprunde.Servlet?service=Index
Ich kenne mich mit mod_rewrite nicht so aus. Werden da quasi einfach requests umgelenkt ?
Richtig der Benutzer gibt eine URL im Browser an, in dem Fall also http://www.knightsoft-net.de/Tipprunde/index.html er landet aber in wirklichkeit auf http://www.knightsoft- net.de//servlet/de.KnightSoft.KnightSoftNet.Tipprunde.Servlet?service=Index Das mod_rewrite Plugin erledigt die Umsetzung, siehe auch http://www.modrewrite.de und zig andere Seiten, die Tante google bei der Suche nach mod_rewrite liefert.
Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ?
Müsste gehen, aber damit reichst Du alles einfach an den Tomcat durch, das dürfte nicht Sinn der Sache sein. Der vorgeschaltete Apache sollte dem Tomcat nach Möglichkeit die statischen Sachen abnehemen (Bilder, Scripte, fixe HTML-Seiten, ...), denn darin ist er besser.
Die Webapp ist jetzt so gut wie fertig. Das jetzt noch mal Auseinanderbasteln in tomcat und httpd ...
Muss ja auch nicht sein, sollte aber im Hinterkopf behalten werden, wenn der Server unter Last strauchelt. Da kann man noch etwas rausholen. Auch das verteilen von einem Apache auf mehrere Tomcats auf unterschiedlichen Maschinen ist ne feine Sache. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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
Am Dienstag, 7. Juni 2011 schrieb Taner A.:
Das hört sich interessant an, wenn man einfach einen Link oder eine Domain weiterreicht zum Tomcat. Muss man bei dieser Lösung innerhalb der Verlinkungen in der jeweiligen Tomcat-Webapp etwas beachten? (Sprich, absolute Verlinkung würde nicht gehen)
Hängt davon ab, man kann mit JkMount ja auch selektiv weiterleiten, oder man hilft per mod_rewrite nach ;-). Ich bastle z.B. @Work Intranet- Anwendungen mit GWT. Das generiert viel Java-Script für den AJAX-Client, welches besser der Apache als der Tomcat ausliefern soll. Ich nehm da gern ein "JkMount /servlet/* ajp13" in die vhost Konfiguration und klatsch dann eine rewrite Regel in die .htaccess mit der ich die Zugriffe, die den Tomcat betreffen umbiege: RewriteRule riphone\/RiPhoneFee /servlet/RiPhoneFee natürlich muss ich dann auch den url-pattern Eintrag der web.xml anpasse von <url-pattern>/riphone/RiPhoneFee</url-pattern> auf <url- pattern>/servlet/RiPhoneFee</url-pattern>. Genausogut könnte ich natürlich die Servlets einzeln "JkMounten": JkMount /riphone/RiPhoneFee ajp13 nur auf die .htaccess haben die Entwickler zugriff, die vhost Geschichte bleibt normal den Administratoren vorbehalten. Nicht dass sich ein gewieferter Entwickler sowieso die root-Rechte beschaffen kann, aber... -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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
Am Tue, 7 Jun 2011 17:55:09 +0200 schrieb "Lentes, Bernd"
den Tomcat zu setzen. Wir nutzen Apache 2.2, Tomcat 6 und SLES 11 SP1. Es ist sehr wahrscheinlich, daß später weitere Webapps dazu kommen. Wir möchten, daß die aktuelle Webapp unter host.domain.tld später direkt erreichbar ist, ohne weitere Pfadangaben. Dies kann später auch für weitere Webapps gelten, es wäre dann analog host2.domain.tld usw. Ich weiß aber nicht genau, wie ich das machen soll.
Mit einer webapp kein Problem, aber mit mehreren kann es zu Problemen kommen, aber das hängt von der Art und Weise der URI-Bildung innerhalb der jeweiligen webapp ab. Bei konsequent relativer Adressierung oder wenn die Basis-URL irgendwo in der webapp hinterlegt werden kann, kann das klappen. Wenn es, wie von Dir erwähnt, akzeptabel ist, dass man mit einem vhost anfängt und dann auf eine http://vhost1.domain.de/app1/ weitergeleitet wird, dann brauchst Du eigentlich nur einen redirect einzufügen: http://httpd.apache.org/docs/current/mod/mod_alias.html#redirect Die andere Frage ist, ob Eure webapps so stabil laufen, dass man sie parallel in einem Tomcat bzw. in einer JVM laufen lassen möchte. Wir müssen hier nach einem webapp-Update häufiger den Tomcat neustarten, damit das S
Vhosts auf httpd-Seite anlegen kann ich, daß habe ich schon öfters gemacht. Per AJP würde httpd den request dann an tomcat weiterleiten. Dies mache ich mit JKMount Direktiven. Aktuell haben wir sowas: JkMount /mouseidgenes appl01
Ich würde es erstmal mit mod_proxy_ajp probieren. Es gibt Gründe hinsichtlich feinerer Konfigurierbarkeit, die für mod_jk sprechen, aber erstmal ist es mit mod_proxy_ajp einfacher.
Ginge ein JkMount / appl01 in der entsprechenden conf des vhosts ?
Ja, sicher geht das, wenn die webapp dann in webapps/ROOT/ abgelegt
wird.
Bei unseren vhosts sieht das im Apache2 wie folgt aus, wobei hier
zwischen lokalen Domains im LAN-Zugriff für Tomcat-Management-Apps und
registrierten Domains via public Internet für Produktion unterschieden
wird. Habe mal die meisten Teile drin gelassen, weil hier innerhalb
einer Konfiguration ajp13-Verbindungen sowohl via mod_proxy_ajp als
auch über mod_jk realisiert werden:
[crm@mikesch ~]$
cat /srv/conf.d/crm.conf #
# vhost-Konfiguration *.crm.firma.*
#
# vhost-spezifische mod_jk-Konfiguration
#
# Inhalte von crm.workers.properties hierher verlegt
JkWorkerProperty worker.list=crm
# Set properties for worker crm (ajp13)
JkWorkerProperty worker.crm.type=ajp13
JkWorkerProperty worker.crm.host=crm.firma.prod
JkWorkerProperty worker.crm.port=8009
# weitere Parameter:
# http://tomcat.apache.org/connectors-doc/generic_howto/workers.html
#
# Virtuelles IP-Alias via DNS
NameVirtualHost crm.firma.prod:80
#
# vhost fuer Produktion
#
<VirtualHost crm.firma.prod:80>
DocumentRoot /srv/crm/html
ServerName crm.firma.de
ServerAlias crm.firma.prod
ErrorLog /srv/crm/logs/error_log
TransferLog /srv/crm/logs/access_log
# Konfiguration mit Tomcat via mod_jk
JkLogFile /srv/crm/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel error
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /* except /docs/, /probe/
# and /manager/ to worker named crm (ajp13)
JkMount /* crm
JkOptions +FlushPackets +ForwardKeySize +ForwardURICompat
-ForwardDirectories
JkUnMount /error/* crm
JkUnMount /docs/* crm
JkUnMount /probe/* crm
JkUnMount /manager/* crm
JkUnMount /j4p* crm
</VirtualHost>
#
# vhost fuer Management nur aus privaten Netz erlauben
#
<VirtualHost crm.firma.prod:80>
DocumentRoot /srv/crm/html/mgmt
ServerName mgmt.crm.firma.prod
ErrorLog /srv/crm/logs/error_log
TransferLog /srv/crm/logs/access_log
Alias /usage /srv/crm/html/mgmt/usage
Hi, Am 07.06.2011 23:29, schrieb Manfred Tremmel:
Hängt davon ab, man kann mit JkMount ja auch selektiv weiterleiten, oder man hilft per mod_rewrite nach ;-). Ich bastle z.B. @Work Intranet- Anwendungen mit GWT. Das generiert viel Java-Script für den AJAX-Client, welches besser der Apache als der Tomcat ausliefern soll. Ich nehm da gern ein "JkMount /servlet/* ajp13" in die vhost Konfiguration und klatsch dann eine rewrite Regel in die .htaccess mit der ich die Zugriffe, die den Tomcat betreffen umbiege:
RewriteRule riphone\/RiPhoneFee /servlet/RiPhoneFee
danke für die Tipps. Mit JkMount biegst du praktisch alles ab servlet domain.tld/serlvet/* zum Tomcat + zusätzlich mit mod-rewrite biegst du noch riphone bzw. RiPhoneFee zum Tomcat. Warum zwei verschiedene Ansätze?
natürlich muss ich dann auch den url-pattern Eintrag der web.xml anpasse von<url-pattern>/riphone/RiPhoneFee</url-pattern> auf<url- pattern>/servlet/RiPhoneFee</url-pattern>. Genausogut könnte ich natürlich die Servlets einzeln "JkMounten":
JkMount /riphone/RiPhoneFee ajp13
nur auf die .htaccess haben die Entwickler zugriff, die vhost Geschichte bleibt normal den Administratoren vorbehalten. Nicht dass sich ein gewieferter Entwickler sowieso die root-Rechte beschaffen kann, aber...
Okey, jetzt verstehe ich, warum man mal mit JkMount und mal mit mod-rewrite arbeitet :-) Macht natürlich Sinn. Grüße -- 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
A. Taner schrieb:
Hi,
Am 07.06.2011 23:29, schrieb Manfred Tremmel:
Hängt davon ab, man kann mit JkMount ja auch selektiv weiterleiten, oder man hilft per mod_rewrite nach ;-). Ich bastle z.B. @Work Intranet- Anwendungen mit GWT. Das generiert viel
Java-Script für den
AJAX-Client, welches besser der Apache als der Tomcat ausliefern soll. Ich nehm da gern ein "JkMount /servlet/* ajp13" in die vhost Konfiguration und klatsch dann eine rewrite Regel in die .htaccess mit der ich die Zugriffe, die den Tomcat betreffen umbiege:
RewriteRule riphone\/RiPhoneFee /servlet/RiPhoneFee
danke für die Tipps. Mit JkMount biegst du praktisch alles ab servlet domain.tld/serlvet/* zum Tomcat + zusätzlich mit mod-rewrite biegst du noch riphone bzw. RiPhoneFee zum Tomcat. Warum zwei verschiedene Ansätze?
Verständnisfrage: Mit JKMount leite ich requests an den httpd an Tomcat weiter. So weit klar. Wie kommt da mod_rewrite ins Spiel ? Werden mit rewrite requests im httpd umgelenkt, die dann anschließend per JKMount an Tomcat weiter geleitet werden ? Also erst mod_rewrite, dann mod_jk ? Muss ich da irgendwas besonderes beachten, daß diese Reihenfolge beibehalten wird ? Mein Szenario: ein vhost pro Applikation, Hostname wäre was Sinngebendes wie applikation.domain.tld. In der conf dieses vhosts würde ich requests an / z.B. auf /webappliaktion umleiten (per rewrite). /webapplikation würde ich dann per JKMount an Tomcat weiter geben. Geht das so ?
natürlich muss ich dann auch den url-pattern Eintrag der web.xml anpasse von<url-pattern>/riphone/RiPhoneFee</url-pattern> auf<url- pattern>/servlet/RiPhoneFee</url-pattern>. Genausogut könnte ich natürlich die Servlets einzeln "JkMounten":
JkMount /riphone/RiPhoneFee ajp13
nur auf die .htaccess haben die Entwickler zugriff, die vhost Geschichte bleibt normal den Administratoren vorbehalten. Nicht dass sich ein gewieferter Entwickler sowieso die root-Rechte beschaffen kann, aber...
Okey, jetzt verstehe ich, warum man mal mit JkMount und mal mit mod-rewrite arbeitet :-) Macht natürlich Sinn.
Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- 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
Am Mittwoch, 8. Juni 2011 schrieb Lentes, Bernd:
A. Taner schrieb:
Hi,
Am 07.06.2011 23:29, schrieb Manfred Tremmel:
Hängt davon ab, man kann mit JkMount ja auch selektiv weiterleiten, oder man hilft per mod_rewrite nach ;-). Ich bastle z.B. @Work Intranet- Anwendungen mit GWT. Das generiert viel
Java-Script für den
AJAX-Client, welches besser der Apache als der Tomcat
ausliefern soll.
Ich nehm da gern ein "JkMount /servlet/* ajp13" in die vhost Konfiguration und klatsch dann eine rewrite Regel in die
.htaccess mit
der ich die Zugriffe, die den Tomcat betreffen umbiege:
RewriteRule riphone\/RiPhoneFee /servlet/RiPhoneFee
danke für die Tipps. Mit JkMount biegst du praktisch alles ab servlet domain.tld/serlvet/* zum Tomcat + zusätzlich mit mod-rewrite biegst du noch riphone bzw. RiPhoneFee zum Tomcat. Warum zwei verschiedene Ansätze?
Verständnisfrage: Mit JKMount leite ich requests an den httpd an Tomcat weiter. So weit klar. Wie kommt da mod_rewrite ins Spiel ? Werden mit rewrite requests im httpd umgelenkt, die dann anschließend per JKMount an Tomcat weiter geleitet werden ? Also erst mod_rewrite, dann mod_jk ?
Ja, so ist es. Im gennanten Beispiel von RiPhone ist das WebProjekt eigentlich über domain.tld/riphone/* anzusprechen. Die ganzen HTML und JavaScript Dateien sind darauf ausgerichtet. Da ich aber eben nicht vorhabe die statischen Inhalte via Tomcat auszuliefern, sondern via Apache, darf ich eben nicht via "JkMount /riphone/* ajp13" alles an den Tomcat übergeben, sondern eben nur die Servletaufrufe. Die biege ich mit der RewriteRule eben von /riphone/* auf /servlet/* um und binde nur dieses via JkMount um. Und ja, mod_rewrite wird anscheinend vor mod_jk ausgeführt, andernfalls würde die Sache nicht funktionieren.
Muss ich da irgendwas besonderes beachten, daß diese Reihenfolge beibehalten wird ?
Ich habe nichts spezielles unternommen.
Mein Szenario: ein vhost pro Applikation, Hostname wäre was Sinngebendes wie applikation.domain.tld. In der conf dieses vhosts würde ich requests an / z.B. auf /webappliaktion umleiten (per rewrite). /webapplikation würde ich dann per JKMount an Tomcat weiter geben. Geht das so ?
Der einfachste Fall mit kompletter Weiterleitung an Tomcat sollte in dem Fall wohl sein: 1. JkMount in der vhost Konfiguration des Apache via JkMount /webapplikation/* ajp13 2. ModRewrite einbinden (falls noch nicht geschehen) In /etc/sysconfig/apache2 den Eintrag APACHE_MODULES= um rewrite ergänzen. 3. Die .htaccess Datei anlegen/erweitern um: RewriteEngine On RewriteBase / RewriteRule $ /webapplikation/xyz RewriteRule ;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule ?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1 RewriteRule index\.html$ /webapplikation/xyz RewriteRule index\.html;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule index\.html?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1 Damit landest Du dann mit http://domain.tld/webapplikation/xyz -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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
Manfred Tremmel schrieb:
Verständnisfrage: Mit JKMount leite ich requests an den httpd an Tomcat weiter. So weit klar. Wie kommt da mod_rewrite ins Spiel ? Werden mit rewrite requests im httpd umgelenkt, die dann anschließend per JKMount an Tomcat weiter geleitet werden ? Also erst mod_rewrite, dann mod_jk ?
Ja, so ist es. Im gennanten Beispiel von RiPhone ist das WebProjekt eigentlich über domain.tld/riphone/* anzusprechen. Die ganzen HTML und JavaScript Dateien sind darauf ausgerichtet. Da ich aber eben nicht vorhabe die statischen Inhalte via Tomcat auszuliefern, sondern via Apache, darf ich eben nicht via "JkMount /riphone/* ajp13" alles an den Tomcat übergeben, sondern eben nur die Servletaufrufe. Die biege ich mit der RewriteRule eben von /riphone/* auf /servlet/* um und binde nur dieses via JkMount um. Und ja, mod_rewrite wird anscheinend vor mod_jk ausgeführt, andernfalls würde die Sache nicht funktionieren.
Muss ich da irgendwas besonderes beachten, daß diese Reihenfolge beibehalten wird ?
Ich habe nichts spezielles unternommen.
Mein Szenario: ein vhost pro Applikation, Hostname wäre was Sinngebendes wie applikation.domain.tld. In der conf dieses vhosts würde ich requests an / z.B. auf /webappliaktion umleiten (per rewrite). /webapplikation würde ich dann per JKMount an Tomcat weiter geben. Geht das so ?
Der einfachste Fall mit kompletter Weiterleitung an Tomcat sollte in dem Fall wohl sein:
1. JkMount in der vhost Konfiguration des Apache via
JkMount /webapplikation/* ajp13
2. ModRewrite einbinden (falls noch nicht geschehen)
In /etc/sysconfig/apache2 den Eintrag APACHE_MODULES= um rewrite ergänzen.
3. Die .htaccess Datei anlegen/erweitern um:
RewriteEngine On RewriteBase / RewriteRule $ /webapplikation/xyz RewriteRule ;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule ?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1 RewriteRule index\.html$ /webapplikation/xyz RewriteRule index\.html;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule index\.html?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1
Damit landest Du dann mit http://domain.tld/webapplikation/xyz
Hallo, Vielen Dank schon 'mal. Fragen: Zu 3: kann ich das auch in der conf eines vhosts machen oder brauche ich .htaccess ? Was macht "RewriteRule $ /webapplikation/xyz" ? Mod_rewrite arbeitet mit RegExp, oder ? Der $ steht da normalerweise für Zeilenende, aber hier versteh ich das nicht so ganz. Oder steht $ für einen request auf /, da nach dem / ja das Zeilenende kommt ? Würde mit dem von Dir beschriebenen Szenario folgendes funktionieren ? Request auf webapplikation.domain.tld ==> Umleiten per rewrite auf /webapplikation ==> Weiterleiten per mod_jk an tomcat auf /webapplikation ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- 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
Am Mittwoch, 8. Juni 2011 schrieb Lentes, Bernd:
Manfred Tremmel schrieb:
Verständnisfrage: Mit JKMount leite ich requests an den httpd an Tomcat weiter. So weit klar. Wie kommt da mod_rewrite ins Spiel ? Werden mit rewrite requests im httpd umgelenkt, die dann anschließend per JKMount an Tomcat weiter geleitet werden ? Also erst mod_rewrite, dann mod_jk ?
Ja, so ist es. Im gennanten Beispiel von RiPhone ist das WebProjekt eigentlich über domain.tld/riphone/* anzusprechen. Die ganzen HTML und JavaScript Dateien sind darauf ausgerichtet. Da ich aber eben nicht vorhabe die statischen Inhalte via Tomcat auszuliefern, sondern via Apache, darf ich eben nicht via "JkMount /riphone/* ajp13" alles an den Tomcat übergeben, sondern eben nur die Servletaufrufe. Die biege ich mit der RewriteRule eben von /riphone/* auf /servlet/* um und binde nur dieses via JkMount um. Und ja, mod_rewrite wird anscheinend vor mod_jk ausgeführt, andernfalls würde die Sache nicht funktionieren.
Muss ich da irgendwas besonderes beachten, daß diese Reihenfolge beibehalten wird ?
Ich habe nichts spezielles unternommen.
Mein Szenario: ein vhost pro Applikation, Hostname wäre was Sinngebendes wie applikation.domain.tld. In der conf dieses vhosts würde ich requests an / z.B. auf /webappliaktion umleiten (per rewrite). /webapplikation würde ich dann per JKMount an Tomcat weiter geben. Geht das so ?
Der einfachste Fall mit kompletter Weiterleitung an Tomcat sollte in dem Fall wohl sein:
1. JkMount in der vhost Konfiguration des Apache via
JkMount /webapplikation/* ajp13
2. ModRewrite einbinden (falls noch nicht geschehen)
In /etc/sysconfig/apache2 den Eintrag APACHE_MODULES= um rewrite ergänzen.
3. Die .htaccess Datei anlegen/erweitern um:
RewriteEngine On RewriteBase / RewriteRule $ /webapplikation/xyz RewriteRule ;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule ?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1 RewriteRule index\.html$ /webapplikation/xyz RewriteRule index\.html;jsessionid\=(.*)$ /webapplikation/xyz;jsessionid=$1 RewriteRule index\.html?JServSessionIdroot\=(.*)$ /webapplikation/xyz?JServSessionIdroot=$1
Damit landest Du dann mit http://domain.tld/webapplikation/xyz
Hallo,
Vielen Dank schon 'mal. Fragen: Zu 3: kann ich das auch in der conf eines vhosts machen oder brauche ich .htaccess ?
Du brauchst keine .htaccess, ist wieder so ne Sache, damit die Entwickler ändern könnne und nicht nur die Administratoren.
Was macht "RewriteRule $ /webapplikation/xyz" ? Mod_rewrite arbeitet mit RegExp, oder ? Der $ steht da normalerweise für Zeilenende, aber hier versteh ich das nicht so ganz. Oder steht $ für einen request auf /, da nach dem / ja das Zeilenende kommt ?
RewriteBase / setzt die Basis auf das Wurzelverzeichnis, alles was danach kommt, bezieht sich darauf. Da hier mit Regular Expressions gearbeitet wird, steht ein "RewriteRule $ /webapplikation/xyz" zusammengesetzt auf "applikation.domain.tld/$" lässt Du das $ weg, trifft die Regel auf alles zu, was mit applikation.domain.tld/ beginnt. Damit wären alle nachfolgenden Regeln wirkungslos. Wenn Du die $ am Ende weglässt, müsstest Du die Regeln in der Reihenfolge so anordnen, dass die oberen Regeln nicht vor den unteren zutreffen.
Würde mit dem von Dir beschriebenen Szenario folgendes funktionieren ? Request auf webapplikation.domain.tld ==> Umleiten per rewrite auf /webapplikation ==> Weiterleiten per mod_jk an tomcat auf /webapplikation ?
Bin mir nicht sicher, ob es ohne das / geht, müsste man ausprobieren, aber im Prinzip sollte es gehen. Normalerweise wird ja in dem Fall eine index.html aufgerufen, auch hierfür hab ich ja ne Regel angegeben. Warte mal, ich hab das doch schon bei nem Projekt da hab ich noch ne Regel: RewriteRule ^$ /webapplikation/xyz Damit müsste dann wirklich alles abgedeckt sein. In all meinen anderen Projekten hab ich nur Unterverzeichnisse umgelenkt. Und falls Dir das alles zu umständlich ist, nimm eine index.html ins Basisverzeichnis mit einer automatischen Weiterleitung wie hier beschrieben: http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- 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, Am 08.06.2011 19:23, schrieb Lentes, Bernd:
Verständnisfrage: Mit JKMount leite ich requests an den httpd an Tomcat weiter. So weit klar. Wie kommt da mod_rewrite ins Spiel ? Werden mit rewrite requests im httpd umgelenkt, die dann anschließend per JKMount an Tomcat weiter geleitet werden ? Also erst mod_rewrite, dann mod_jk ? Muss ich da irgendwas besonderes beachten, daß diese Reihenfolge beibehalten wird ? Mein Szenario: ein vhost pro Applikation, Hostname wäre was Sinngebendes wie applikation.domain.tld. In der conf dieses vhosts würde ich requests an / z.B. auf /webappliaktion umleiten (per rewrite). /webapplikation würde ich dann per JKMount an Tomcat weiter geben. Geht das so ?
Ich wollte noch kleine Anmerkungen loswerden. Werden später, die einzelnen webapps alle innerhalb eines Tomcats laufen? Was ist, wenn eine Applikation ein Neustart des Tomcats erzwingt, so werden die anderen webapps auch beeinflusst. Oder, dürfen die webapp-Entwickler die anderen webapps im Tomcat sehen? (Alle webapps laufen in der gleichen JVM mit demselben Tomcat-Benutzer) (Tomcat selber soll ja anscheinend auch vHost können). Eine Alternative wäre, dass man mehrere Tomcat-Instanzen einsetzt. Der große Nachteil wäre jedoch die hohe Administration bei mehreren Tomcats und evtl. auch mehrere Ports pro Tomcat. Grüße -- 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 (4)
-
Lentes, Bernd
-
Manfred Tremmel
-
Taner A.
-
Tobias Crefeld