Iis
IIS URL 重寫和反向代理
我有一個反向代理規則,它將對特定子域的所有請求轉發到內部伺服器,並且一切正常。
<rule name="cloud.domain.com" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^(cloud.)domain.com$" /> </conditions> <action type="Rewrite" url="http://127.0.0.1:8000/{R:0}" appendQueryString="true" /> </rule>
這適用於對 cloud.domain.com 的 http 和 https 請求。但是,我希望對http://cloud.domain.com>的所有請求都轉發到<https://cloud.domain.com,後者對內部伺服器進行反向代理。有任何想法嗎?
Rewrite 和 ARR 模組接受現有請求並將其重新路由到另一台伺服器以完成該請求。
SSL 應始終位於兩個端點之間,在本例中為瀏覽器和最終伺服器,您正試圖在過程中途引入 SSL。如果重寫模組切換到 SSL,瀏覽器是怎麼知道的呢?(它不)如果瀏覽器作業系統不信任最終伺服器的證書怎麼辦?這不應該工作。
你應該做什麼它為所有非ssl請求設置一個重定向規則,從http://到https://,然後瀏覽器將使用SSL重複請求,它應該一直通過。
您需要添加這樣的條件:
<conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />