ホームページ  >  記事  >  バックエンド開発  >  nginx プロキシ キャッシュ構成パラメータの解釈

nginx プロキシ キャッシュ構成パラメータの解釈

小云云
小云云オリジナル
2018-01-03 15:44:092042ブラウズ

この記事は主に nginx ngx_http_proxy_module のキャッシュ関連の設定パラメーターを分析します。

proxy_cache

proxy_cacheプロキシ_キャッシュオフ;http、サーバー、場所共有を定義しますキャッシュに使用されるメモリ ゾーン。同じゾーンを複数の場所で使用できます。パラメータ値には変数を含めることができます (1.7.9)。off パラメータは、バックエンド応答キャッシュを有効にするかどうかを設定します。有効な場合、パラメータ値はゾーンの名前です (例: proxy_cache mycachengx_http_proxy_moduleproxy_cache_valid)。デフォルト値はありません。たとえば、proxy_cache_valid 200 302 10m;http、server location Sさまざまな応答コードのキャッシュ時間を設定します。コードを設定しない場合、デフォルトは 200、301、302 です。any を使用してすべてのコードを指定することもできますngx_http_proxy_moduleproxy_cache_keyproxy_cache_key $scheme$proxy_host$ request_uri;http、server、locationキャッシュ用のキーを定義します デフォルト値はproxy_cache_key $scheme$proxy_host$uri$と同等です。 is_args$args;ngx_http_proxy_moduleproxy_cache_path デフォルト値はありません。インスタンス proxy_cache_path /var/cache tables=1:2keys_zone=imgcache:100m inactive=2h max_size=1g;httpを設定しますキャッシュのパスおよびその他のパラメータは、キャッシュ内のファイル名に基づいてキャッシュ キーに適用されます。レベル パラメータは、それぞれ 1 から 3 までのキャッシュの階層レベルを定義します。 level は値 1 または 2 を受け入れます。 キャッシュ ストレージへのパス、キャッシュ キーという名前の md5 値を指定します。たとえば、level パラメーターに基づいて生成されます。 2:3. 最初のディレクトリ名は md5 値の最後の値を取り、2 番目のディレクトリ名は 2 番目と 3 番目の値を取り、3 番目のディレクトリ名は 4 番目、5 番目、および 6 番目の値を受け取ります。 md5 値; key_zone パラメータは、共有メモリにキャッシュされたメタデータの名前とメモリ サイズを指定するために使用されます (例: key_zone=imgcache:100m )。すべてのキャッシュ検索では最初にここでメタデータが検索され、ヒットした場合は次のようになります。ファイル システムにアクセスして、対応するキャッシュを検索します。 inactive は、アクセス タイムアウトによってキャッシュが削除されない時間を指定するために使用されます。デフォルトは 10 分ですが、 max_size などを使用して自分で指定することもできます。キャッシュの最大値を指定します。この値を超える場合、文字列パラメーターの少なくとも 1 つの値が空でなく、等しくない場合、最も最近使用されたキャッシュはキャッシュから自動的に削除されません。 「0」に設定すると、応答はキャッシュから取得されません。特定の値が無効な場合にどの応答が無効であるかを指定します。空または 0 でない場合、proxy_cache_bypass $http_pragma などのキャッシュは使用されません。 $http_authorization;ngx_http_proxy_moduleproxy_cache_min_usesproxy_cache_min_uses 1;http、server、locationproxy_cache_lock_timeout 5s; インスタンス
http {
    # we set this to be on the same filesystem as proxy_cache_path
    proxy_temp_path /usr/local/nginx/proxy_temp;
    # good security practice dictates that this directory is owned by the
    # same user as the user directive (under which the workers run)
    proxy_cache_path /usr/local/nginx/proxy_temp keys_zone=CACHE:10m levels=1:2 inactive=6h max_size=1g;

    server {
        location / {
            # using include to bring in a file with commonly-used settings
            include proxy.conf;
            # referencing the shared memory zone defined above
            proxy_cache CACHE;
            proxy_cache_valid any 1d;
            proxy_cache_bypass $http_pragma $http_authorization;
            proxy_cache_min_uses 3;
            proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
            proxy_pass http://upstream;
        }
    }
}
doc
名前 デフォルト設定 スコープ 公式説明 中国語解釈 モジュール
応答がキャッシュされるまでのリクエストの数を設定します。 キャッシュするリクエストの数を指定しますその後の応答内容ディレクティブのパラメーターは、proxy_next_upstream ディレクティブのパラメーターと一致します。 proxy_cache_use_stale エラー タイムアウト valid_header http_500 http_502 http_503 http_504 などのステータス コードを返すときに、バックエンド サーバーが期限切れのキャッシュを使用できることを指定します。 ; ngx_http_proxy_module
proxy_cache_lock proxy_cache_lock off; http、server、location 有効にすると、プロキシサーバーにリクエストを渡すことにより、proxy_cache_key ディレクティブに従って識別された新しいキャッシュ要素を設定できるリクエストは一度に 1 つだけ許可されます。同じキャッシュ要素の他のリクエストは、proxy_cache_lock_timeout ディレクティブで設定された時間まで、応答がキャッシュに表示されるか、この要素のキャッシュ ロックが解放されるまで待機します。 デフォルトでは無効ですが、有効になっている場合は、同じキャッシュを更新するリクエストは 1 つだけあり、他のリクエストはキャッシュにデータが入るのを待つか、制限時間内にロックが解放されるのを待ちます。 proxy_cache_lock_timeout
http、サーバー、場所 時間が経過すると、リクエストはプロキシサーバーに渡されますが、 その後はレスポンスはキャッシュされません。キャッシュ ロックがタイムアウトするまで待機すると、バックエンドが直接リクエストされ、結果はキャッシュされません。nginx 1.1.12 では ngx_http_proxy_module

ngx_http_proxy_module が追加されました。

  • nginx リバースプロキシキャッシュ設定

  • nginx proxy_cache_path ディレクティブについて理解する

  • 関連の推奨:

nginx React 静的ページのサンプルチュートリアルを設定する

Apache の選択方法そして Nginx

nginx とAlibaba Cloud で https メソッドの手順をデプロイするためのノード

以上がnginx プロキシ キャッシュ構成パラメータの解釈の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。