Apache 的 mod_proxy 模塊允許您使用 ProxyPass 和 ProxyPassReverse 指令將請求轉發到另一個服務器。在某些情況下,您可能希望將某些 URL 從代理中排除。在本教程中,我將向您展示如何 在Apache 中從 ProxyPass 中排除特定的 URL 地址。
假設有一些靜態內容存儲在 "/var/www/html/static" 目錄下,應用程序以 /static URL 開頭對外提供訪問服務。您想所有以 /static 開頭的 URL 直接從目錄提供服務,而不需要代理它們。
您可以在主要的 ProxyPass 設置之前添加以下配置來實現這一點。
ProxyPass /static !
Alias "/static" "/var/www/html/static"
! 符號告訴 apache,不要代理以 /static 開頭的 URL 請求。static 別名將 URL 映射到 "/var/www/html/static" 目錄。
確保在 ProxyPass 配置之前添加了上述配置,示例如下:
<VirtualHost *:80>
ServerName example.com
ProxyPass /static !
Alias "/static" "/var/www/html/static"
<Directory "/var/www/html">
Require all granted
</Directory>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
保存更改,重啓 Apache 服務
sudo systemctl restart apache2