2016-05-20 13 views
2

複数の自己ホストWebアプリケーションをホストするためにAzureサービスファブリックにAzureロードバランサを使用していますが、ユーザーのURL要求に基づいてルーティングするルールを作成したいと考えています。例えばだからサービスファブリックURLルーティング

ユーザーが移動した場合:

http:// domain.com/Site1次にルールがルートになります。クラスタ

http:// domain.com**:8181**/Site1ユーザーが移動した場合:

http:// domain.com/Site2

、ルールルート希望〜 http:// domain.com**:8282**/Site2クラスタ内

これはazure service fabrで可能ですかic /ロードバランサ?

答えて

2

Azureロードバランサは、ポートで受信したトラフィックを、別のポート(同じポートまたは別の内部ポート)にあるクラスター内のノードに転送します。レイヤ4(TCP、UDP)上で動作するので、HTTPやURLについては何も知らない(HTTPプローブは許可されるが)。あなたのWebサイトは、内部的に異なるポート(8181および8282)でホストされている場合、あなたはURLルーティングを行うために何か他のものが必要になります、

は、ここで複数のWebサイトのためのカップルのオプションです。 Azure Traffic ManagerまたはAzure Application Gatewayは、クラスタ外で実行できるオプションです。 Azure Load BalancerはWebサイトごとにポートを開く必要がありますが、専用ノードでWebサイトを実行できる利点があり、ALBはポートが開いていることに基づいて適切なノードにトラフィックを自動的にルーティングします。

また、クラスタ内で実行される独自のステートレスルーティングサービスを設定することもできます。

また、ルーティングをすべてスキップして、ポート80/443ですべてのウェブサイトをホストすることもできます。 Katana、ASP.NET Core 1 WebListener、またはHttpListenerで構築したものを含むhttp.sysベースのWebホストを使用している場合は、すべてのWebサイトで同じポートを使用し、基になる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