Apache para servir archivos estáticos y aplicaciones web

Apache para servir archivos estáticos y aplicaciones web

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 Locationque no necesita ser proxy, y este bloque debe escribirsedespuésel bloque de proxy, así:

<Location />
  ProxyPass http://localhost:7070/
  (...)
</Location>

<Location /auth>
  ProxyPass "!"
</Location>

información relacionada