[英]IIS Route Request To Different Ports Based on Sub-domain
我有一個域,我們稱之為domain.com
。
在我的 DNS 提供商上,我已將兩個子域配置為指向同一個 IP 地址。 例如:
sub1.domain.com
=> 185.146.11.17
sub2.domain.com
=> 185.146.11.17
我在 IIS 中配置了兩個站點,分別偵聽端口 8080 和 8081。
現在,由於流量直接通過185.146.11.17:80
,我需要根據請求的子域將其路由到端口8080
或端口8081
。
我已經閱讀了有關重寫規則和反向代理的內容,但是對於如何根據請求的子域簡單地實現我所需要的內容感到非常困惑。
如何解決這個問題?
經過多次挖掘、反復試驗和拔出頭發,我設法解決了這個問題。 在這種情況下,IIS 似乎為一個人提供了很多繁重的工作,實際上並不需要任何明確的反向代理和/或重寫規則。
DNS設置如下
sub1.domain.com
=> 185.146.11.17
sub2.domain.com
=> 185.146.11.17
一個人需要做的就是:
1. 停止/刪除端口80
上的默認網站。
2. 創建新網站:
2.1. 站點名稱設置為sub1.domain.com
。
2.2. IP 地址設置為All Unassigned
,端口設置為80
。
2.3. 主機名設置為sub1.domain.com
。
3. 對sub2.domain.com
重復該過程。
按照上述步驟,這一切都應該神奇地工作。 主機名非常重要,所以一定不要錯過這些。 我建議為 HTTPS 設置這一切,然后創建一個規則,如果請求來自這樣的協議,則從 HTTP 重定向。
感謝大家提供建議。
聽起來您需要為自己創建一個 ARR 負載平衡。
先決條件
1.應用請求路由和URL重寫安裝。
2.三個DNS名稱,一個用於前端,兩個用於后端。
3.三個帶域名的網站:
主站點
子站點 1
子站點2
<globalRules>
<rule name="ARR_MyServer_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<action type="Rewrite" url="http://MyServer/{R:0}" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.candy.com" />
</conditions>
</rule>
</globalRules>
6.轉到配置管理器->網絡農場並將PreserveHostHeader設置為false。 7.轉到您的網絡農場->我的服務器監控和管理,確保所有服務器都健康現在您可以為您的主站點進行負載平衡。
當您將服務器加入您的網絡場時,請記住為每個服務器設置 HTTP 端口。
Applicationhost.config 應如下所示:
<webFarm name="MyServer" enabled="true">
<server address="domain1.candy.com" enabled="true">
<applicationRequestRouting httpPort="8080" />
</server>
<server address="domain2.candy.com" enabled="true">
<applicationRequestRouting httpPort="8081" />
</server>
<applicationRequestRouting>
<healthCheck url="" />
<protocol preserveHostHeader="false" />
</applicationRequestRouting>
</webFarm>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.