ngx_http_memcached_module モジュール

設定例
ディレクティブ
     memcached_bind
     memcached_buffer_size
     memcached_connect_timeout
     memcached_gzip_flag
     memcached_next_upstream
     memcached_next_upstream_timeout
     memcached_next_upstream_tries
     memcached_pass
     memcached_read_timeout
     memcached_send_timeout
     memcached_socket_keepalive
組み込み変数

ngx_http_memcached_module モジュールはmemcachedサーバから応答を取得するために使われます。キーは$memcached_key 変数に設定されます。応答はnginx外の方法で前もってmemcachedに配置されていなければなりません。

設定例

server {
    location / {
        set            $memcached_key "$uri?$args";
        memcached_pass host:11211;
        error_page     404 502 504 = @fallback;
    }

    location @fallback {
        proxy_pass     http://backend;
    }
}

ディレクティブ

構文: memcached_bind address [transparent ] | off;
デフォルト: -
コンテキスト: http, server, location

このディレクティブはバージョン0.8.22から導入されました。

memcachedサーバへ向かって出て行く接続が、指定したローカルのIPアドレスとオプションのポートから始まるようにします (1.11.2)。パラメータの値には変数を含めることができます (1.3.12)。特別な値off (1.3.12) は上の設定レベルのmemcached_bindディレクティブの継承の影響をキャンセルします。これによりシステムはローカルIPアドレスとポートに自動割り当てすることができます。

transparent パラメータ (1.11.0) はmemcachedサーバへ向かって出ていく接続がローカルIPアドレスでは無いようにします。例えば、クライアントの実際のIPアドレス:

memcached_bind $remote_addr transparent;

このパラメータが動作するためには、通常nginxのワーカープロセスを superuser 権限を使って実行する必要があります。Linux上では、transparentパラメータが指定された場合はワーカープロセスはマスタープロセスからCAP_NET_RAW機能を継承するため、必要ではありません (1.13.8)。memcachedサーバからのネットワーク通信を捕らえるためにカーネルのルーティングテーブルを設定する必要もあります。

構文: memcached_buffer_size size;
デフォルト:
memcached_buffer_size 4k|8k;
コンテキスト: http, server, location

memcachedサーバから応答の最初の部分を読み込むために使われるバッファのsizeを設定します。応答は受け取り次第クライアントに同期して渡されます。

構文: memcached_connect_timeout time;
デフォルト:
memcached_connect_timeout 60s;
コンテキスト: http, server, location

memcachedサーバとの接続の確立のタイムアウトを定義します。このタイムアウトは通常75秒以上にならないことに注意が必要です。

構文: memcached_gzip_flag flag;
デフォルト: -
コンテキスト: http, server, location

このディレクティブはバージョン1.3.6から導入されました。

memcachedサーバの応答の中にflag があることのテストを可能にし、フラグが設定されている場合は"Content-Encoding"応答ヘッダーフィールドに"gzip"を設定します。

構文: memcached_next_upstream error | timeout | invalid_response | not_found | off ...;
デフォルト:
memcached_next_upstream error timeout;
コンテキスト: http, server, location

どの場合にリクエストが次のサーバに渡されるべきかを指定します:

エラー
サーバへの接続の確立時、あるいはサーバにリクエストを渡す時、あるいは応答ヘッダーを読み込む時にエラーが起きた場合;
timeout
サーバへの接続の確立時、あるいはサーバにリクエストを渡す時、あるいは応答ヘッダーを読み込む時にタイムアウトが起きた場合;
invalid_response
サーバが空あるいは無効な応答を返した場合;
not_found
サーバに応答が見つからなかった場合;
off
リクエストを次のサーバに渡すのを無効化する。

まだクライアントに何も送っていない時にのみ、リクエストを次のサーバに渡す事ができるということを、心に留めておいてください。応答の転送中にエラーまたはタイムアウトが起きると、この修復は不可能です。

このディレクティブは何をサーバとの通信の失敗と見なすかについても定義します。error, timeoutinvalid_response は、ディレクティブの中で指定されていなくても常に失敗と見なされます。not_foundの場合には失敗だと見なされることはありません。

次のサーバへリクエストを渡すことを 試行回数 および 時間で制限することができます。

構文: memcached_next_upstream_timeout time;
デフォルト:
memcached_next_upstream_timeout 0;
コンテキスト: http, server, location

このディレクティブはバージョン1.7.5から導入されました。

次のサーバに渡すことができるリクエストの間隔を制限します。0 の値はこの制限を無効にします。

構文: memcached_next_upstream_tries number;
デフォルト:
memcached_next_upstream_tries 0;
コンテキスト: http, server, location

このディレクティブはバージョン1.7.5から導入されました。

次のサーバにリクエストが渡すときに、可能な試行回数を制限します。0 の値はこの制限を無効にします。

構文: memcached_pass address;
デフォルト: -
コンテキスト: location, if in location

memcachedサーバのアドレスを設定します。アドレスはドメイン名またはIPアドレスと、ポートで指定することができます。

memcached_pass localhost:11211;

あるいは、UNIXドメインソケットパス:

memcached_pass unix:/tmp/memcached.socket;

ドメイン名が幾つかのアドレスに解決される場合は、ラウンドロビンの形式でそれら全てが使われるでしょう。更に、server groupとしてアドレスを指定することができます。

構文: memcached_read_timeout time;
デフォルト:
memcached_read_timeout 60s;
コンテキスト: http, server, location

memcachedサーバからの応答の読み込みのタイムアウトを設定します。タイムアウトは二つの連続する読み込み操作の間に設定され、応答全体の転送のためのものではありません。memcachedサーバがこの時間内に何も転送しなかった場合、接続は閉じられます。

構文: memcached_send_timeout time;
デフォルト:
memcached_send_timeout 60s;
コンテキスト: http, server, location

memcachedサーバへのリクエストの転送のタイムアウトを設定します。タイムアウトは二つの連続する書き込み操作の間に設定され、リクエスト全体の転送のためのものではありません。memcachedサーバがこの時間内に何も受け取らなかった場合、接続が閉じられます。

構文: memcached_socket_keepalive on | off;
デフォルト:
memcached_socket_keepalive off;
コンテキスト: http, server, location

このディレクティブはバージョン1.15.6から導入されました。

Configures the “TCP keepalive” behavior for outgoing connections to a memcached server. デフォルトでは、オペレーティングシステムの設定はソケットに対して有効です。ディレクティブが値“on”に設定されている場合、ソケットのSO_KEEPALIVEソケットオプションがオンになります。

埋め込み変数

$memcached_key
memcachedサーバから応答を受け取るためのキーを定義します。

TOP
inserted by FC2 system