博客 / 詳情

返回

如何在 Apache 中排除特定的代理 URL 請求 ?

Excluding URLs from ProxyPass in Apache

Apache 的 mod_proxy 模塊允許您使用 ProxyPassProxyPassReverse 指令將請求轉發到另一個服務器。在某些情況下,您可能希望將某些 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
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.