2016-05-20 126 views
2

我正在使用Azure負載平衡器和Azure服務結構託管多個自主Web應用程序,我想創建一個允許我根據用戶URL請求進行路由的規則。服務結構URL路由

因此,舉例來說,如果用戶瀏覽到:

http:// domain.com/Site1則該規則將路線:在集羣內 http:// domain.com**:8181**/Site1

如果用戶導航到:

http:// domain.com/Site2那麼該規則將路線到: http:// domain.com**:8282**/Site2集羣內

這是可能的與天藍色的服務ic /負載均衡器?

回答

2

Azure負載平衡器僅將端口接收到的流量轉發到另一個端口(可以是同一端口或不同的內部端口)上的羣集中的節點。它在第4層(TCP,UDP)上運行,因此它不知道HTTP或URL的任何內容(儘管它允許HTTP探測)。

這裏有多個網站一對夫婦的選擇:

如果你想在內部託管在不同的端口(8181和8282),您的網站,那麼你需要點別的事情做URL路由。 Azure流量管理器或Azure應用程序網關是可以在羣集外運行的選項。您的Azure負載均衡器需要爲每個網站打開一個端口,但好處是您可以在專用節點上運行您的網站,並且ALB會根據打開的端口自動將流量路由到適當的節點。

或者,您可以設置自己的無狀態路由服務,該服務在羣集內運行。

或者您可以完全跳過路由,只需在端口80/443上託管所有網站。只要您使用基於http.sys的Web主機(包含Katana,ASP.NET Core 1 WebListener或您在HttpListener上構建的任何內容),就可以爲所有網站使用相同的端口,並讓底層http服務器根據URL路徑或主機名進行路由,兩者均受支持。

+0

謝謝,最後我去了最後的解決方案,這似乎是最簡單的方法,並在.barcode應用程序中使用WebListener。 – Slicc

+0

你能否詳細說明選項2? – itaysk

+0

'在80/443端口上託管你所有的網站'如果你在weblistener中使用這樣的方法:https://matt.kotsenas.com/posts/https-in-service-fabric-web-api會很疲倦,當如果您要更換證書(例如更新),您必須取消在安全端口上偵聽的所有服務,否則您將遇到443正在與舊證書一起使用的問題,然後新的服務器嘗試使用新的443的證書。這導致失敗。 – Mardoxx