ngx_http_upstream_conf_module モジュール

設定例
ディレクティブ
     upstream_conf

ngx_http_upstream_conf_module モジュールはnginxの再起動の必要無しに単純なHTTPインタフェースを使ってその場でupstreamサーバ グループを設定することができます。http あるいは stream サーバグループは共有メモリにある必要があります。

このモジュールは、商用サブスクリプションの一部として1.13.10まで利用可能でした。1.13.3では、ngx_http_api_moduleモジュールに置き換えられました。

設定例

upstream backend {
    zone upstream_backend 64k;

    ...
}

server {
    location /upstream_conf {
        upstream_conf;
        allow 127.0.0.1;
        deny all;
    }
}

ディレクティブ

構文: upstream_conf;
デフォルト: -
コンテキスト: 場所

取り囲んでいるlocation内でupstream設定のHTTPインタフェースを作動する。このlocationへのアクセスは制限されなければなりません。

設定コマンドは以下のために使うことができます:

グループ内のアドレスはユニークである必要は無いため、グループ内の特定のサーバはIDによって参照されます。ID は自動的に割り当てられ、新しいサーバを追加する時やグループ設定を表示する時に表示されます。

パラメータから構成される設定コマンドはリクエストの引数として渡されます。例えば:

http://127.0.0.1/upstream_conf?upstream=backend

以下のパラメータがサポートされます:

stream=
stream upstream サーバグループを選択します。このパラメータが無い場合は、http upstream サーバグループを選択します。
upstream=name
動作させるグループを選択します。パラメータは必須です。
id=number
表示、修正あるいは削除する個々のサーバを選択する。
remove=
グループからサーバを削除する。
add=
グループに新しいサーバを追加する。
backup=
バックアップサーバの追加を要求する。
バージョン1.7.2以前は、backup= は、既存のバックアップサーバを表示、修正あるいは削除する必要もありました。
server=address
http あるいは stream upstreamサーバの"address"パラメータと同じです。

サーバを追加する時には、ドメイン名としてそれを指定することができます。この場合、ドメイン名に対応するIPアドレスの変更は監視され、nginxの再起動の必要無しにupstreamの設定に自動的に適用されるでしょう(1.7.2)。これは http あるいは streamブロックの中の "resolver"ディレクティブを必要とします。http あるいは stream upstreamサーバの"resolve"も見てください。

service=name
http あるいは stream upstreamサーバの"service"パラメータと同じです (1.9.13)。
weight=number
http あるいは stream upstreamサーバの"weight"パラメータと同じです。
max_conns=number
http あるいは stream upstreamサーバの"max_conns"パラメータと同じです。
max_fails=number
http あるいは stream upstreamサーバの"max_fails"パラメータと同じです。
fail_timeout=time
http あるいは stream upstreamサーバの"fail_timeout"パラメータと同じです。
slow_start=time
http あるいは stream upstreamサーバの"slow_start"パラメータと同じです。
down=
http あるいは stream upstreamサーバの"down"パラメータと同じです。
drain=
httpupstreamサーバを"draining"モードにする(1.7.5)。このモードでは、サーバに 紐付けられているリクエストのみがプロキシされます。
up=
http あるいは stream upstreamサーバの"down"パラメータと逆です。
route=string
http upstreamサーバの"route"パラメータと同じです。

最初の3つのパラメータがオブジェクトを選択します。これは全体のhttpまたはupstreamサーバグループまたは特定のサーバかも知れません。他のパラメータが無い場合は、選択されたグループあるいはサーバの設定が表示されます。

例えば、全体のグループの設定を表示するには、以下を送信します:

http://127.0.0.1/upstream_conf?upstream=backend

特定のサーバの設定を見るには、IDも指定します。

http://127.0.0.1/upstream_conf?upstream=backend&id=42

新しいサーバを追加するには、"server="パラメータにそのアドレスを追加します。他のパラメータが指定されない場合、サーバは他のパラメータのセットをデフォルトの値にして追加されるでしょう(httpまたはstream "server" ディレクティブを見てください)。

例えば、新しいプライマリサーバを追加するには、以下を送信します:

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080

新しいバックアップサーバを追加するには、以下を送信します:

http://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080

新しいプライマリサーバを追加し、デフォルトではない値をパラメータに設定しし、それに"down"の印を付けるには、以下を送信します:

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=

サーバを削除するには、IDを指定します:

http://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42

既存のサーバに"down"の印を付けるには、以下を送信します:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&down=

既存のサーバのアドレスを変更するには、以下を送信します:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123

既存のサーバの他のパラメータを修正するには、以下を送信します:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4

上の例は http upstream サーバグループのためのものです。stream upstream サーバグループの似たような黎は"stream="パラメータを必要とします。

TOP
inserted by FC2 system