Hallo werte Java Gemeinde,
ich hab ein Problem, bin mir fast sicher es ist nur eine Kleinigkeit (bzw hoffe ich es!?), aber ich komm einfach nicht drauf an was das liegt. Folgender IST Zustand:
Industrie PC mit Windows 7 Embedded.
Darauf läuft Apache 2.2 sowie Tomcat 7.
Auf Tomcat laufen einige Webanwendungen (.war), mit Verbindung zu einer postgreSQL Datenbank. Diese Anwendungen laufen schon etwa ein Jahr, Zugrif darauf erfolgt im Moment nach folgendem Beispiel:
hostname:8080/anwendungsname
In Apache soll eine Seite eingebunden werden, die mit PHP programmiert auf die verschiedenen Webanwendungen zugreiffen kann. Der Apache aallein funktioniert auch, ich kann .html und .php Dateien Aufrufen:
hostname/seite.html
Um nun die Webseite und die Webanwendungen verschmelzen zu können, muss eine Verbindung zwischen den beiden Webserveren eingerchtet werden. Das habe ich mit mod_jk verwirklicht, nach folgender Anleitung (und viel Leserei auf anderen Seiten und in anderen Dokus, aber diese Anleitung war der Grundstein):
michael-heiss.at - TomcatBehindApache
Als Konfiguration habe ich Folgendes vorgenommen:
1. Unter Apache2.2/conf eine Datei Namens "workers.properties" angelegt mit diesem Inhalt:
#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
2. Unter Apache2.2/conf die Datei "httpd.conf" angepasst, bzw. folgenden Teil am Ende angehängt
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /* worker1
#JkMount /sqh/* worker1
#JkUnMount /sqh/* worker1
#JkUnMount /*.php worker1
#JkUnMount /*.html worker1
3. Die Datei mod_jk.so in den Ordner module kopiert
NUN DAS PROBLEM:
Prinzipiell funktioniert die Weiterleitung. Durch den Eintrag "JkMount /* worker1" werden alle Anfragen automatisch weitergeleitet und ich kann auf die Anwendungen ohne die Portangabe ":8080" einwandfrei Aufrufen. Allerdings wird so ja JEDE Anfrage an Tomcat weitergeleitet, das ist so nicht Sinn der Sache. Aber es zeigt das die Verbindung allgemein eigentlich mal steht.
Wenn ich nun, wie auch in der Anleitung steht, NUR die Zeile "JkMount /sqh/* worker1" einbinde, dann sollten ja alle Anfragen nach folgender Form an Tomcat weitergeleitet werden:
hostname/sqh/...
Das Funktioniert aber nicht!!! Folgende Fehlermeldung kommt:
"The requested resource (/sqh) is not available."
In der Logdatei steht allerdings:
Tue Mar 04 18:40:53 2014] [error] [client 172.20.207.118] File does not exist: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/anwendungsname
Warum schaut er unter Apache2.2/htdocs? Die Anfrage sollte doch an Tomcat weitergeleitet werden, also sollte er unter "Tomcat7/webapps/sqh" schauen!? (Zum testen liegen die Apps sowohl direkt unter webapps als auch unter sqh, allerdings habe ich das ganze auch mit NUR unter webapps und NUR unter sqh getestet) Ich finde nicht heraus, welche Konfiguration ich da vergessen habe!?
Da mich dieser Weg nicht weiter gebracht hat, habe ich folgende Konstellation ausprobiert:
JkMount /* worker1
JkUnMount /*.php worker1
JkUnMount /*.html worker1
Alle Anfragen werden weiter geleitet, ausser Anfragen für .php oder .html Dateien. Sobald ich aber die JkUnMount Aufrufe einbinde, werden die Webapplikationen nicht geladen!!! Ich werde zwar zu Tomcat weiter geleitet (es kommt ein Ladekreis in der Mitte des Browsers) , allerdings werden selbst nach 15(!) Min warten, keine Anwendungen geladen.
Ich hoffe ich habe alle nötigen Informationen vorgetragen. Wie ihr seht, irgendwie funktioniert das ganze, aber eben noch nicht stabil. Ich bin, was Webserver angeht, sehr unerfahren, deshalb würde ich mich freuen wenn jemand seine Weisheiten mit mir teilt. Sollte ich versehentlich Informationen verheimlicht haben, weist mich darauf hin.
Wie bekomm ich es hin, dass meine PHP Seite auf dem Apache läuft und die Weiterleitung zu den Webanwendungen auf dem Tomcat ohne Einschränkungen funktioniert?
Danke für die Hilfe,
Rappit
ich hab ein Problem, bin mir fast sicher es ist nur eine Kleinigkeit (bzw hoffe ich es!?), aber ich komm einfach nicht drauf an was das liegt. Folgender IST Zustand:
Industrie PC mit Windows 7 Embedded.
Darauf läuft Apache 2.2 sowie Tomcat 7.
Auf Tomcat laufen einige Webanwendungen (.war), mit Verbindung zu einer postgreSQL Datenbank. Diese Anwendungen laufen schon etwa ein Jahr, Zugrif darauf erfolgt im Moment nach folgendem Beispiel:
hostname:8080/anwendungsname
In Apache soll eine Seite eingebunden werden, die mit PHP programmiert auf die verschiedenen Webanwendungen zugreiffen kann. Der Apache aallein funktioniert auch, ich kann .html und .php Dateien Aufrufen:
hostname/seite.html
Um nun die Webseite und die Webanwendungen verschmelzen zu können, muss eine Verbindung zwischen den beiden Webserveren eingerchtet werden. Das habe ich mit mod_jk verwirklicht, nach folgender Anleitung (und viel Leserei auf anderen Seiten und in anderen Dokus, aber diese Anleitung war der Grundstein):
michael-heiss.at - TomcatBehindApache
Als Konfiguration habe ich Folgendes vorgenommen:
1. Unter Apache2.2/conf eine Datei Namens "workers.properties" angelegt mit diesem Inhalt:
#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
2. Unter Apache2.2/conf die Datei "httpd.conf" angepasst, bzw. folgenden Teil am Ende angehängt
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /* worker1
#JkMount /sqh/* worker1
#JkUnMount /sqh/* worker1
#JkUnMount /*.php worker1
#JkUnMount /*.html worker1
3. Die Datei mod_jk.so in den Ordner module kopiert
NUN DAS PROBLEM:
Prinzipiell funktioniert die Weiterleitung. Durch den Eintrag "JkMount /* worker1" werden alle Anfragen automatisch weitergeleitet und ich kann auf die Anwendungen ohne die Portangabe ":8080" einwandfrei Aufrufen. Allerdings wird so ja JEDE Anfrage an Tomcat weitergeleitet, das ist so nicht Sinn der Sache. Aber es zeigt das die Verbindung allgemein eigentlich mal steht.
Wenn ich nun, wie auch in der Anleitung steht, NUR die Zeile "JkMount /sqh/* worker1" einbinde, dann sollten ja alle Anfragen nach folgender Form an Tomcat weitergeleitet werden:
hostname/sqh/...
Das Funktioniert aber nicht!!! Folgende Fehlermeldung kommt:
"The requested resource (/sqh) is not available."
In der Logdatei steht allerdings:
Tue Mar 04 18:40:53 2014] [error] [client 172.20.207.118] File does not exist: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/anwendungsname
Warum schaut er unter Apache2.2/htdocs? Die Anfrage sollte doch an Tomcat weitergeleitet werden, also sollte er unter "Tomcat7/webapps/sqh" schauen!? (Zum testen liegen die Apps sowohl direkt unter webapps als auch unter sqh, allerdings habe ich das ganze auch mit NUR unter webapps und NUR unter sqh getestet) Ich finde nicht heraus, welche Konfiguration ich da vergessen habe!?
Da mich dieser Weg nicht weiter gebracht hat, habe ich folgende Konstellation ausprobiert:
JkMount /* worker1
JkUnMount /*.php worker1
JkUnMount /*.html worker1
Alle Anfragen werden weiter geleitet, ausser Anfragen für .php oder .html Dateien. Sobald ich aber die JkUnMount Aufrufe einbinde, werden die Webapplikationen nicht geladen!!! Ich werde zwar zu Tomcat weiter geleitet (es kommt ein Ladekreis in der Mitte des Browsers) , allerdings werden selbst nach 15(!) Min warten, keine Anwendungen geladen.
Ich hoffe ich habe alle nötigen Informationen vorgetragen. Wie ihr seht, irgendwie funktioniert das ganze, aber eben noch nicht stabil. Ich bin, was Webserver angeht, sehr unerfahren, deshalb würde ich mich freuen wenn jemand seine Weisheiten mit mir teilt. Sollte ich versehentlich Informationen verheimlicht haben, weist mich darauf hin.
Wie bekomm ich es hin, dass meine PHP Seite auf dem Apache läuft und die Weiterleitung zu den Webanwendungen auf dem Tomcat ohne Einschränkungen funktioniert?
Danke für die Hilfe,
Rappit