web-dev-qa-db-ja.com

SSLWebサイトの高可用性

当社のWebサーバークラスターの1つは、中程度の数のビジーなeコマースアプリケーションにサービスを提供します。現在、各サイトは特定のWebサーバー上にあり、クラスター内の別のWebサーバーにミラーリングされたホットスペアコピーを持っています。サーバーに障害が発生した場合、フェイルオーバーサーバー上のサイトを再アクティブ化するための手動プロセスがあります。障害だけでなく、サイトのダウンタイムなしにメンテナンスのためにマシンを停止できるようにするために、より良いソリューションが必要になるところまで来ています。

2〜3台のクラスターを構築することを検討しています HAProxy サーバー(主に優れたパフォーマンス記録があるため)をWebサーバーの前に配置します。私が読んだことから、セッション管理やユーザーを同じサーバー上に維持するなどのニーズのほとんどを満たすことができます。私たちの最大の関心事はSSL証明書に関するものです。各サイトには独自のSSL証明書があります。エンドユーザーはHAProxyサーバーに接続するため、HAProxyクラスター内の各マシンに証明書を移動する必要があると想定できます。 HAProxyはSSLを直接処理しないため、リバースプロキシタイプの転送構成を介して同じシステム上のApache + mod_sslでこれを実現できることを読みました。

だから、私の特定の質問は、HAProxyが実際に仕事に適したツールであるかどうかです。既存のSSL証明書(現在、Windows 2003 Serverでは、いくつかはEV-SSL証明書です)はApacheに移植できますか?代わりに検討する必要のある他のソフトウェアまたはハードウェアソリューションはありますか(SSLサイトでHAProxyを使用することは必要以上に複雑に思えます)?高可用性SSLWebクラスターをセットアップする際の、考慮していなかった可能性のあるその他の注意事項はありますか?

6
Justin Scott

Microsoft/IIS 7ソリューションを利用している場合、1つのオプションは、IIS7のアプリケーション要求ルーティング(ARR)を使用することです。

ここlearn.iis.netのこの記事に紹介/チュートリアルがあります: アプリケーション要求ルーティングを使用したHTTP負荷分散 。 「SSLオフロード」と呼ばれる機能があります。

この機能を有効にすると、クライアントからARRサーバーへのHTTPS要求の場合でも、ARRサーバーとアプリケーションサーバー間のすべての通信がクリアテキストで行われます。 ARRサーバーとアプリケーションサーバーの両方が同じデータセンター内などの信頼できるネットワーク内に展開されている場合、SSLオフロードを有効にしてもセキュリティが犠牲になることはありません。

また、この機能を有効にすると、アプリケーションサーバーのサーバーリソースを最大化するのにさらに役立ちます。これは、アプリケーションサーバーが要求と応答の暗号化と復号化にサイクルを費やす必要がないためです。

主題を掘り下げたい場合は、 ARRに関する別の記事があります 、ハードウェアロードバランサーと組み合わせてメカニズムを使用する方法を説明しています。

2
splattne

過去に私は似たようなものをセットアップしましたが、リソースをかなり消費するmodPerlアプリケーションを実行しています。そのため、基本的にアプリサーバーの前にsquidが配置され、Apache + proxyを使用してsslオフロードを実現し、squidを介してすべてのコンテンツをキャッシュできるようにしました。クラスタリングの部分については、フェイルオーバーロードバランサーにLVS(linux仮想サーバー)+ハートビートを使用しました。使用したsslオフロード方法については、ブログの this 記事を参照してください。

1
Brendan

hAProxyを使用して目的を構成する方法はいくつかありますが、使用するすべてのサーバーにssl証明書が存在する必要があります。私が遭遇したが使用したことのない別のオプションは、負荷分散SSLサーバーを念頭に置いて設計された ポンド というアプリです。

0
graeme