Apache 同時提供靜態文件和 Web 應用程式

Apache 同時提供靜態文件和 Web 應用程式

我在下面的反向代理配置上執行 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 http://localhost

如何使用 /var/www/html/auth/ 存取靜態內容 https://example.com/auth網址

答案1

您需要使用該ProxyPass "!"指令從代理程式中明確刪除該位置。這應該在Location你不需要代理的地方完成,並且應該寫這個塊代理塊,如下圖所示:

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

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

相關內容