1

したがって、Nginxがプロキシサーバーおよびロードバランサーとして機能するリバースプロキシサーバーがあります。私の最大の問題は、2 つのアプリ バックエンドがあり、時々シャットダウンする必要があることです。サーバーがバックエンドをダウンした後に書き込むと、シャットダウンしてセッションが失われます。アプリ サーバーの 1 つを正常にシャットダウンするにはどうすればよいですか? すべてのセッションが完了するまで、またはしばらくNginxが待機するようにするには?

私の簡単な設定:

upstream loadbalancer {
                ip_hash;
                server          192.168.0.1:443;
                server          192.168.0.2:443;
}
4

1 に答える 1

0

問題は、各サーバーに独自のセッションマネージャーがあることです。サーバーが停止すると、そのサーバーでセッションデータが失われます。適切な解決策は、集中セッションストレージを作成することです。たとえば、負荷分散している同じサーバーです。他の 2 つのサーバーはそれに接続してセッション データを取得します。一方のサーバーがダウンし、他方のサーバーが他方のサーバーによって提供されていた接続を提供しようとすると、データは別の場所に保存されているため、データは引き続き検出されます。そのための一般的な方法は、memcached をセッション ストレージとして使用することです。

長所としては、アプリサーバーを好きなだけ追加および削除でき、ユーザーは変更に気付かない.

ただし、データが集中化されているため、その 1 台のサーバーが停止すると、すべてのセッション データが失われます。

使用している言語を質問にタグ付けしていませんが、Google で検索すると、役に立つ投稿が簡単に見つかります。

于 2013-10-01T17:32:03.423 に答える