nginx構成へのプログラムによるインターフェイスはありますか?


8

nginxをWebサーバーインスタンスの前のロードバランサーとして使用しています。Webサーバーの4つのインスタンスを実行し、nginxを使用してトラフィックをインスタンス全体に均等に分散します。新しいバージョンをデプロイするとき-nginx.confを変更し、4台のサーバーのうち最初の2台を停止としてマークしてから、nginxを再起動します。サーバーコードを更新し、最初の2つのサーバーを再起動します。次に、nginx.confを編集して、最初の2つのサーバーが稼働していることを示し、他の2つのサーバーを停止していることをマークし、nginxを再起動します。次に、他の2つのインスタンスを更新して再起動します。再びnginx.confを更新して、すべてのサーバーを起動し、nginxを最後に再起動します。

私はこのプロセスを数日に何度か行わなければなりません。上記の手順を手動で毎回実行すると、エラーが発生しやすくなります。

このプロセスを自動化できるように、nginx / nginx.confへのプログラムによるアクセスはありますか?

[私が今想像する唯一の方法は、シェルスクリプトで上記の手順を記述することです]


3
あなたがやっていることは非常に奇妙に思えます。fail_timeoutバックエンドのそれぞれで5秒に設定し、それらの2つを停止します。NGINXはそれを取得し、すべてのトラフィックを2番目の2つのノードにリダイレクトします。コードを更新し、5秒(またはタイムアウト値は何でも)待つと、NGINXは最初の2つのサーバーの使用を開始し、次に2つ目のサーバーを停止して繰り返します。NGINXはそのようなセットアップで非常にうまく機能します
Smudge

回答:


3

いいえ、nginxには設定APIがありません。

サーバーを手動でダウンとしてマークする必要がある場合もありますが、一般的には、proxy_next_upstream + fail_timeoutを設定することで機能します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.