1

背景情報: 私は Play Framework ベースのアプリケーションを 2 つのノードで実行しています。これらのノードは単一の nginx ベースのロード バランサーの背後にあります。ソフトウェアの更新は、Jenkins 上で自動化されます。アプリケーションは、Supervisord プロセス マネージャーの上で実行されています。

質問: ソフトウェアの更新中にサービスが稼働するようにソフトウェアをノードに更新する正しい方法は何ですか?

解決策 1: ソフトウェアが更新されるノードからポート 80 を無効にし、ノードがサービスを提供する準備ができたらそれを開きます。ロード バランサーは、リクエストを別のノードに自動的に転送する必要があります。

解決策 2: ソフトウェアの更新中にロード バランサーからノードを無効にします。私は個人的にこのソリューションが好きではありません。ロード バランサーの構成を変更するのはリスクが高すぎるように思えます。また、変更を使用するには、nginx を再起動する必要があります。

他のアプローチを提案していただけますか?

4

1 に答える 1

3

役立つかどうかはわかりませんが、nginx のリロードは適切であり、ダウンタイムも発生しません。

ここで例を見てください

于 2012-10-29T13:20:20.883 に答える