Windows-Server-2008
我可以將 IIS 7+ 配置為根據傳入的主機名進行動態反向代理嗎?
我正在嘗試將 IIS 配置為基於傳入主機名的代理請求。例如,如果我的代理伺服器是位於 www.proxy.com 的 IIS 伺服器,則對 www.google.com.www.proxy.com 的請求將被代理到 www.google.com
我嘗試使用 URL 重寫規則設置反向代理以重寫
*localhost*
為 {R:1}{R:2},但我沒有任何運氣。根據我的閱讀,只有在我提前明確指定要與之互動的伺服器時才有可能,但在我的情況下,這是不可能的(伺服器在 EC2 上並且一直在動態創建和終止)。
設置起來真的沒那麼難。通過允許幾乎任何域 www 是否是明智之舉。.com.www.proxy.com 代理到 www。.com 是另一回事。您應該有某種機制來限制您要代理的域。
但無論如何,從技術上講,您必須使用以下 URL 重寫規則(安裝 ARR 模組)設置反向代理:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxy" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{CACHE_URL}" pattern="^(https?)://(.*?)\.www\.proxy\.com" /> </conditions> <action type="Rewrite" url="{C:1}://{C:2}/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
但是您確實應該添加更多條件來限制您允許代理的域。