Ich habe Apache auf der folgenden Reverse-Proxy-Konfiguration laufen, um Java-Webanwendungsinhalte bereitzustellen
<VirtualHost *:80>
SSLProxyEngine on
ProxyPreserveHost On
ProxyRequests Off
ServerName www.example.com
ServerAlias example.com
<Location />
Order deny,allow
Allow from all
SetOutputFilter INFLATE;DEFLATE
ProxyPass http://localhost:7070/
ProxyPassReverse http://localhost:7070/
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</Location>
</VirtualHost>
Jetzt möchte ich einen statischen Dateiordner hinzufügen und dieser sollte unter demselben Domänennamen, aber unter dem Pfad "/auth" bereitgestellt werden https://example.com/auth
also habe ich die folgende Konfiguration direkt unter der obigen hinzugefügt
<Location /auth>
Require all granted
Allow from all
</Location>
Alias "/auth" "/var/www/html/auth"
DocumentRoot /var/www/html/auth/
<Directory /var/www/html/auth>
Require all granted
DirectoryIndex index.html
</Directory>
Aber wenn ich "https://example.com/auth" versuche, geht es immer noch zu Java WebApp und gibt mir 404. Aber wenn ich curl localhost verwende, kann ich den Inhalt der Webseite sehen
curl http://localhost
So greifen Sie auf statische Inhalte unter /var/www/html/auth/ zu mit https://example.com/authURL
Antwort1
Sie müssen diesen Standort explizit aus dem Proxy entfernen, indem Sie die ProxyPass "!"
Direktive verwenden. Dies sollte in dem erfolgen, Location
was nicht als Proxy verwendet werden muss, und dieser Block sollte wie folgt geschrieben werden:nachder Proxy-Block, wie folgt:
<Location />
ProxyPass http://localhost:7070/
(...)
</Location>
<Location /auth>
ProxyPass "!"
</Location>