動的なWebサイトの高可用性を実現するための最良の方法は何ですか?別のサーバーで2つ目のコピーを作成し、ユーザーセッションを台無しにするためにロードバランサーを使用したくない場合、最良の代替手段は何ですか?
3 に答える
代わりに、セッションデータをデータベースに保存して、その問題を回避してから、アプリケーションサーバーへの要求をラウンドロビンすることができます。
(良い)ロードバランサーは「スティッキー」になるように構成できます。つまり、ロードバランサーは毎回同じIPから同じサーバーにリクエストを送信します。
2つのバックエンドWebサーバーの前にロードバランサーが配置されている場合でも、単一障害点をWebサーバーではなくロードバランサーに移動するだけです。したがって、アプリケーションはまだ高可用性ではありません。
ロードバランサーと少なくとも1組のWebサーバーを使用することを強くお勧めします。職場では、HAプロキシを使用しています。これは、セッションが「スティッキー」であることを完全に保証し、フェイルオーバーするときにダウンしない限り、同じWebサーバーに送信されます。
ロードバランサーの高可用性を実現するために、相互のミラーイメージである2つのロードバランシングサーバーをセットアップできます。両方のロードバランサーに単一の仮想IPを割り当てます。他のサーバーをポーリングして、サーバーがダウンしているかどうかを確認するスクリプトを作成します。ダウンしている場合は、そのスクリプトにその仮想IPアドレスを取得させます。スクリプトは両方のサーバーで実行されている必要があります。
このリンクは、仮想IPアドレスを管理する1つの方法を説明しています。多数のLinuxディストリビューションについて同様の記事が書かれていますが、それらはすべて同じ方法に基づいています。
ロードバランサー。それらは、セッションを処理できるように構成する必要があります。たぶん、毎回同じバックエンドに同じIPを送信することによって。または、データベース内に保存するか、何らかの理由で本当に高速にする必要がある場合は共有メモリに保存します。