Tengo Apache ejecutándose en la siguiente configuración de proxy inverso para servir contenido de aplicaciones web Java.
<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>
Ahora quiero agregar una carpeta de archivos estáticos y debería publicarse con el mismo nombre de dominio pero en la ruta "/auth". https://ejemplo.com/auth
así que agregué la siguiente configuración justo debajo de la anterior
<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>
Pero cuando intento "https://example.com/auth", todavía va a la aplicación web de Java y me da 404. Pero cuando hago curl en localhost puedo ver el contenido de la página web.
curl http://localhost
cómo acceder a contenido estático en /var/www/html/auth/ usando https://ejemplo.com/authURL
Respuesta1
Debe eliminar explícitamente esa ubicación del proxy mediante la ProxyPass "!"
directiva. Esto debe hacerse en lo Location
que no necesita ser proxy, y este bloque debe escribirsedespuésel bloque de proxy, así:
<Location />
ProxyPass http://localhost:7070/
(...)
</Location>
<Location /auth>
ProxyPass "!"
</Location>