我在以下反向代理配置上运行 apache 来提供 java webapp 内容
<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>
现在我想添加静态文件夹,并且应该在同一个域名下但在“/auh”路径下提供服务 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/auth网址
答案1
您需要使用指令明确从代理中删除该位置。这应该在您不需要代理的地方ProxyPass "!"
完成,并且应该写入此块Location
后代理块,如下所示:
<Location />
ProxyPass http://localhost:7070/
(...)
</Location>
<Location /auth>
ProxyPass "!"
</Location>