nginxをWebサーバーインスタンスの前のロードバランサーとして使用しています。Webサーバーの4つのインスタンスを実行し、nginxを使用してトラフィックをインスタンス全体に均等に分散します。新しいバージョンをデプロイするとき-nginx.confを変更し、4台のサーバーのうち最初の2台を停止としてマークしてから、nginxを再起動します。サーバーコードを更新し、最初の2つのサーバーを再起動します。次に、nginx.confを編集して、最初の2つのサーバーが稼働していることを示し、他の2つのサーバーを停止していることをマークし、nginxを再起動します。次に、他の2つのインスタンスを更新して再起動します。再びnginx.confを更新して、すべてのサーバーを起動し、nginxを最後に再起動します。
私はこのプロセスを数日に何度か行わなければなりません。上記の手順を手動で毎回実行すると、エラーが発生しやすくなります。
このプロセスを自動化できるように、nginx / nginx.confへのプログラムによるアクセスはありますか?
[私が今想像する唯一の方法は、シェルスクリプトで上記の手順を記述することです]
fail_timeoutバックエンドのそれぞれで5秒に設定し、それらの2つを停止します。NGINXはそれを取得し、すべてのトラフィックを2番目の2つのノードにリダイレクトします。コードを更新し、5秒(またはタイムアウト値は何でも)待つと、NGINXは最初の2つのサーバーの使用を開始し、次に2つ目のサーバーを停止して繰り返します。NGINXはそのようなセットアップで非常にうまく機能します