Ich bin ein ziemlicher Neuling in Sachen Apache-Server (2.0, ich weiß, dass es ein bisschen zu alt ist, aber an meinem Arbeitsplatz muss ich es lernen, da es die Version ist, die wir verwenden) und versuche nun, Apache mit JBoss zum Laufen zu bringen (Jboss als Anwendungsserver, Apache vor JBoss und Bereitstellung aller statischen Inhalte).
Mithilfe von mod_jk habe ich Apache mit JBoss zum Laufen gebracht. Wenn ich jedoch versuche, eine virtuelle Hostkonfiguration hinzuzufügen, damit Apache Bilder aus einem bestimmten Ordner bereitstellt, anstatt JBoss zum Bereitstellen statischer Inhalte zu zwingen, erhalte ich die Fehlermeldung „403 Forbidden“.
Ich habe mehrere Foren und andere Websites durchsucht, um eine Antwort oder Lösung für dieses Problem zu finden, aber leider hat nichts geholfen! :(
Kann mir bitte jemand dabei helfen? Eine kleine Erklärung wäre eine willkommene Ergänzung.
Das Folgende ist meine virtuelle Hostdefinition in der Datei httpd.conf.
<VirtualHost *:80>
ServerAdmin admin@localhost
ServerName localhost
DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/jboss/"
<Directory "D:/Dev-Ops/apache/Apache2/htdocs/jboss/">
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
#rewrite incoming requests
RewriteEngine On
RewriteCond /SchoolApp%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://localhost:8080/SchoolApp/$1 [proxy,last]
</VirtualHost>
Wir freuen uns über Ihre Hilfe.
PS: Ich habe dies verfolgtVerknüpfungnachdem ich mehrere andere solcher Anweisungen ausprobiert habe.
Antwort1
Schließlich habe ich es selbst herausgefunden. Mod-Jk verfügt über die Anweisungen JkMount und JkUnMount, um die Umleitung von Inhalten zu erreichen.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:\Dev-Ops\apache\Apache2\htdocs"
ServerName localhost.com
JkMount /SchoolApp/* loadbalancer
JkMount /SchoolApp loadbalancer
JkUnMount /SchoolApp/*jpg loadbalancer
JkUnMount /SchoolApp/*.html loadbalancer
</VirtualHost>
JkMount /SchoolApp/*
leitet alle Anfragen von Apache an die JBoss-Webanwendung SchoolApp weiter (hier:http://localhost.com:8080/SchoolApp/); da ich es verwendet habe,
JkUnMount /SchoolApp/*jpg loadbalancer
werden keine Anfragen umgeleitet fürjpgDateien an JBoss, stattdessen wird nach SchoolApp/
Ordnern darunter gesucht "D:\Dev-Ops\apache\Apache2\htdocs"
und Bilder von dort bereitgestellt. Ich habe dort darunter eine richtige Verzeichnisstruktur, die die Verzeichnisstruktur für die JPG-Datei nachahmt, die ich von der JBoss-Webanwendung angefordert habe.
Wenn ich beispielsweise anforderehttp://localhost.com/SchoolApp/, mod-jk leitet die Anfrage weiter anhttp://localhost.com:8080/SchoolApp/jedoch; wenn ich anforderehttp://localhost.com/SchoolApp/welcome.jpg, wird diese Anfrage nicht weitergeleitet an diehttp://localhost.com:8080/SchoolApp/welcome.jpgselbst wenn eine solche Datei in der JBoss-Anwendung vorhanden ist, wird stattdessen im Ordner htdocs/SchoolApp/ in Apache nach „welcome.jpg“ gesucht und die Datei „welcome.jpg“ von dort bereitgestellt, falls sie vorhanden ist.
Ich hoffe, das erklärt es.