location ~ ^/(xx|yy).action{ nginx は、キャッシュのステータスを表示するための変数 $upstream_cache_status を提供し、このステータスを表示するための http ヘッダーを追加して、Squid と同様の効果を実現できます。 $upstream_cache_status には次のステータスが含まれます: ・MISS ミス、リクエストはバックエンドに送信されます ・HIT キャッシュヒット ・EXPIRED キャッシュの有効期限が切れ、リクエストはバックエンドに送信されますバックエンド (1) $is_args'?' 疑問符 この例を書くと、これは、他のパラメーターを無視しながら、一部のパラメーター、pageNo、および subjectId を指定する方法であることを理解することがより重要だと思います。たとえば、タイムスタンプが追加される場合、タイムスタンプを無視できます。それ以外の場合は、キャッシュが無視されます。決してヒットしません。
説明 3:
proxy_cache_use_stale エラー タイムアウト更新 http_404 http_500 http_502 http_503; proxy_cache_use_stale バックエンドでどのような状況が発生するかを指定するときに nginx を使用できますサーバーのキャッシュが期限切れになりました。 説明4:
proxy_cache_lock on; # エントリをメモリに書き込みます。proxy_cache_lock_time はタイムアウト後にすぐに解放されます
proxy_set_header Accept-Encoding "";
proxy_set_header ホスト $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-For Warded -For $proxy_add_x_forwarded_for;
add_header ;//説明 2 を参照
proxy_cache_methods GET POST;
proxy_cache_valid 200 301 302 5s;
proxy_cache_use_stale エラー タイムアウト更新 http_404 http_500 http_502 http_503;//参照説明 3
proxy_cache_lock on;
//説明 4 を参照 proxy_cache_lock_timeout 5s;
proxy_pass http://localhost;}
説明 1:
add_header X キャッシュ $upstream_cache_status ; 応答ヘッダーを通じてキャッシュ ヒット ステータスを簡単に観察できるようになります。
・UPDATING はキャッシュを更新しており、古いレスポンスを使用します
・STALE バックエンドは期限切れのレスポンスを取得します
説明 2:
(2) $args; は疑問符の後のすべてのパラメータを表します
たとえば、更新が定式化されている場合、は 1 つのスレッドのみがキャッシュを更新することを保証し、このスレッドがキャッシュを更新するプロセス中、他のスレッドは現在のスレッドの期限切れバージョンにのみ応答します。キャッシュ。
#同じリクエストを定義し、バックエンドへのリクエストの送信を 1 つだけ許可します同時に、proxy_cache_key に従って新しい
デフォルト値: なし使用フィールド: http、サーバー、場所キャッシュ ゾーンの名前を設定します。同じゾーンを別の場所で使用できます。 0.7.48 以降、キャッシュはバックエンドの「Expires」、「Cache-Control: no-cache」、「Cache-Control: max-age=XXX」などに従います。ただし、現在、nginx は、「private」や「no-store」などの一部のキャッシュ制御ディレクティブを無視します。同様に、nginx は、一部のプライベート データが保護されないように、キャッシュ プロセス中に「Vary」ヘッダーを処理しません。すべてのユーザーに表示されるようにするには、バックエンドで「no-cache」または「max-age=0」ヘッダーを設定する必要があります。そうしないと、proxy_cache_key に $http_cookie_xxx などのユーザー指定のデータが含まれます。これを防ぐには、proxy_cache_key の Cookie 値の一部を使用します。プライベート データがキャッシュされないように、プライベート データとパブリック データを分離して場所を指定できます。 キャッシュ ディレクティブはプロキシ バッファー (バッファー) に依存します。proxy_buffers がオフに設定されている場合、キャッシュは有効になりません。
proxy_cache_key "$host$request_uri$cookie_user"; |
proxy_cache_key "$scheme$host$request_uri"; |
3 proxy_cache_path
proxy_cache_path /data/nginx/cache levels=1:2 keys_z/td> |
ファイル名は次のようになります: /data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c すべてのアクティブなキーとメタデータは共有ディレクトリに保存されます。メモリ領域。この領域は、keys_zone パラメータで指定されます。inactive パラメータで指定された時間内にキャッシュされたデータが要求されない場合、デフォルトの inactive は 10 分です。 キャッシュ マネージャー プロセスは、max_size パラメーターで定義されたディスクのキャッシュ サイズを制御し、そのサイズを超えると、最も使用されていないデータが削除されます。 領域のサイズは、キャッシュされたページ数に比例して設定されます。ページ (ファイル) のメタデータ サイズは、FreeBSD/i386 では 64 バイト、FreeBSD/amd64 では 128 バイトです。領域がいっぱいの場合 鍵取得後、LRU(最も最近使用されていないアルゴリズム)に従って処理されます。 proxy_cache_path と proxy_temp_path は同じファイル システム上で使用する必要があります。
4 proxy_cache_methods
proxy_cache_methods POST; |
5 proxy_cache_min_uses
6 proxy_cache_valid
7 proxy_cache_use_stale
コードを記述して構成を構成します:
各命令のフック (つまりコールバック) は ngx_http_proxy_module.c で定義されており、構成ファイルを読み取るときに呼び出されます。設定するときは、「HTTP_CACHE」を YES に設定するだけです (HTTP_CACHE 行は auto/options にあります)。 「proxy_cache_purge」ディレクティブでは、nginx をダウンロードする必要があります アドオンの「キャッシュパージ」モジュール。構成時に「--add-module=」を使用してコードをロードします。
次の添付ファイルには他の nginx キャッシュ コンテンツが含まれていますが、現在はほとんど使用されていません。興味がある場合は、詳細をご覧ください:
以上、内容の側面も含めて Nginx のキャッシュ構成について紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。