22
す。アップストリームサーバーからの応答は、次のように定義する定義済みの一致ブロ
ックと一致する必要があります:ステータスコード200、ヘ ッ ダ ー Content-Type を'text/
h t m l'、応答本文で文字列"Welcome to nginx!"。HTTP matchブロックには3つのディレ
クティブがあります: status、header、body。こ れ ら 3つ の デ ィレ ク テ ィ ブ に は す べ て 、比
較 フラ グも 利 用しています。
TCP/UDPサービスのストリームヘルスチェックは非常に似ています:
stream {
# ...
server {
listen 1234;
proxy_pass stream_backend;
health_check interval=10s
passes=2
fails=3;
health_check_timeout 5s;
}
# ...
}
この例では、TCPサーバーはポート1234をリッスンし、アクティブヘルスチェックを実行
するupstreamサーバーセットにプロキシするよう構成されます。ストリームhealth_check
ディレクティブ は HTTPと同じパラメータを使用します(例外はuri)が 、ス ト リ ー ム バ ー
ジョンにはチェックプロトコルをudpに変 更するためのパラメータがあります。この例で
は 、間 隔 は 10秒に設定されていて、健全であると認められるためには2つの連 続するチェッ
クをパスする必要があり、3回失敗すると不健全であるとみなされます。アクティブス
トリームヘルスチェックは、アップストリームサーバーからの応 答も検証できます。しか
し 、ス ト リ ー ム サ ー バ ー の matchブロックにはsendとexpectの2つの ディレ クティブしか
ありません 。sendディレクティブは生データを送信し、expectは完全一致の応答また
は一 致する正 規表 現です。
解説
NGINX Plusでは、パッシブまたはアクティブヘルスチェックはソースサーバーを監視す
るために使用できます。これらのヘルスチェックは応答コード以上のものを計測できま
す。NGINX Plusで は 、ア ク テ ィ ブ HTTPヘルスチェックモニターはアップストリームサーバー
への応答受け入れ条件の正常応答回数に基づいています。アップストリームサーバーが
チェックされる頻度、サーバーが正常であると認められるためには何度チェックをパス
する必要があるか、何回までなら異常と認められずに失敗できるか、期待される結果はな
にかなどをモニターするためにアクティブヘルスチェックを構 成 できます。より複 雑なロ
ジックでは、matchブロックへのrequireデ ィレ ク テ ィ ブ が 変 数 の 使 用 を 可 能 に し ま す 。変
数の値はemptyまたはゼロには設定できません。matchパラメータは応 答の受け入れ 基 準
を定義するmatchブロックを指します。matchブロックは、TCP/UDPのストリームコンテキ
ストで 使 用されるときにアップストリームサーバーに 送 信 するデータも定 義します。これら
の機能はNGINXがアップストリームサーバーの健全性を常に保証できるようにします。
| 第2章:ハイパフォーマンスロードバランシング