2016-12-08 5 views
1

SSLハンドシェイクで問題が発生しているのは、トラフィックが多すぎることです。サイトを使用しているクライアントが同じであるため、リクエスト間にハンドシェイクを保存する方法を探しています。私たちはAzure Webappsを使用しています。これはAzure上でWebアプリケーションとしてホストされている.NETアプリケーションです。Azure WebappでのSSLハンドシェイクの再利用

2つの解決策を見てきました。 1. http keep aliveヘッダーでTCPセッションの長さを増やします。 2. SSLセッションの償還/再利用を使用します。

1: 最大接続数が問題となる可能性があります。トラフィックマネージャは500k接続をサポートする必要があります https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#traffic-manager-limits

しかし、私はAzure Webアプリケーションがトラフィックマネージャを使用しているとは確信していませんか?私が見つけた何

は紺碧のウェブアプリケーションの制限のリストだった: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

そして、私は正しいことを読めば、最大8000のノードあたりの接続ノードの最大数は10である上記ビットです。したがって、80,000の接続が得られますが、たとえばtableStorageやblobStorageなどのアウトバウンド接続も含まれます。

2: これはWindows 2012サーバーとApacheとnginxでサポートされています。しかし、AzureのWebアプリケーションと、Azureで見つかったロードバランサのどちらもこれをサポートしていないようです(正しい?)。これを達成するための唯一の方法は、私たち自身をサポートするロードバランサを搭載した仮想マシン(たとえばnginx)をセットアップすることです。

私たちの質問は次のとおりです。 1. azure webappsとのすべての接続でSSLハンドシェイクが行われないようにするには、どのような方法が推奨されますか? 2.上記の理由に間違いやコメントはありますか?

答えて

0

しかし、私はAzure Webアプリケーションがトラフィックマネージャを使用しているとは確信していませんか?

Azureでもトラフィックバランスを使用できますが、DNSレベルで動作しますが、WebAppのデフォルトのロードバランサではありません。

しかし、Azure WebアプリケーションとAzureで見つかったロードバランサのどちらもこれをサポートしていないようです(正しい?)。

Azure WebApp Architectureによれば、AzureロードバランサとApplication Gatewayを使用してロードバランスを行います。 Azureロードバランサとアプリケーションゲートウェイの詳細については、documentを参照してください。したがって、ロードバランサを備えた仮想マシンをセットアップする必要はありません。

enter image description here

紺碧のwebappsとの接続ごとに行われる防ぐSSLハンドシェイクの推奨方法は何ですか?

すべての最初の接続が完全なハンドシェイクが必要ですが、それ以降は、セッションチケット(ID)を再利用することができ、我々は、AzureのポータルでにARR親和を設定することができ、その後、クライアントは、インスタンスとのセッションを確立し、それが維持されますセッションが終了するまで同じインスタンスに話しかけます。

enter image description here

+0

SSLセッションがApplication Gatewayで停止するため、APRはこれにどのように影響しますか? – iveqy

+0

Azure WebAppアーキテクチャでは、ARRは**アプリケーション要求ルーティング** IIS Extensionの略で、接続中のユーザーをアクティブインスタンス間で分散します。 ARRは、要求を選択されたWebインスタンスに転送します。 ARRの詳細については、[document](https://azure.microsoft.com/en-us/blog/disabling-arrs-instance-affinity-in-windows-azure-web-sites/)を参照してください。 –

関連する問題