Apache-2.4
Apache 同時提供靜態文件和 webapp
我在反向代理配置下執行 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>
現在我想添加靜態文件夾,並且應該在相同的域名下但在“/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
如何使用 https://example.com/auth URL訪問 /var/www/html/auth/ 上的靜態內容
您需要使用該
ProxyPass "!"
指令從代理中顯式刪除該位置。這應該在Location
你不需要被代理的地方完成,並且這個塊應該寫在代理塊之後,像這樣:<Location /> ProxyPass http://localhost:7070/ (...) </Location> <Location /auth> ProxyPass "!" </Location>