У меня 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>