Apache для обслуживания как статических файлов, так и веб-приложений

Apache для обслуживания как статических файлов, так и веб-приложений

У меня Apache работает на следующей конфигурации обратного прокси-сервера для обслуживания содержимого веб-приложения 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>

Теперь я хочу добавить папку со статическими файлами, которая должна обслуживаться под тем же доменным именем, но по пути «/auth». https://example.com/auth

поэтому я добавил следующую конфигурацию сразу под предыдущей

<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>

Но когда я пробую "https://example.com/auth", он все равно переходит на Java WebApp и выдает мне 404. Но когда я запускаю Curl Localhost, я вижу содержимое веб-страницы.

curl http://localhost

как получить доступ к статическому контенту на /var/www/html/auth/ с помощью https://example.com/authURL

решение1

Вам нужно явно удалить это местоположение из прокси с помощью ProxyPass "!"директивы. Это должно быть сделано в том, Locationчто вам не нужно проксировать, и этот блок должен быть написанпослеблок прокси, например такой:

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

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

Связанный контент