検索
ホームページ運用・保守NginxNginx コンテンツ キャッシュを構成する方法と一般的なパラメーター構成は何ですか?

使用シナリオ:

プロジェクト ページでは、頻繁に変更されない大量のデータを読み込む必要があります。パーソナライズされたカスタマイズは必要ありません。データはリクエストごとに動的に生成されます。リクエストのルートとパラメータに基づいて結果をキャッシュし、nginx キャッシュを使用するとリクエスト速度が大幅に向上します。

基本

コンテンツ キャッシュを有効にするには、proxy_cache_path と proxy_cache を構成するだけです。前者はキャッシュ パスと構成を設定するために使用され、後者はキャッシュ パスと構成を設定するために使用されます。キャッシュを有効にするために使用されます。

http {
 ...
 proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

 server {
 proxy_cache mycache;
 location / {
  proxy_pass http://localhost:8000;
 }
 }
}

対応するパラメータの説明:

1. キャッシュに使用されるローカル ディスク ディレクトリは、/path/to/cache/

2 です。 .levels は、/path/to/cache/ に 2 レベルのディレクトリ階層を設定します。多数のファイルを 1 つのディレクトリに配置すると、ファイル アクセスが遅くなる可能性があるため、ほとんどの展開では 2 レベルのディレクトリ階層を推奨します。レベルパラメータが設定されていない場合、nginx はすべてのファイルを同じディレクトリに配置します。

3.keys_zone キャッシュ キーとメタデータの保存に使用される共有メモリ領域を設定します。これはタイマーの使用と似ています。キーのコピーをメモリに配置すると、nginx はディスクを取得せずにリクエストがヒットかミスかを迅速に判断できるため、取得速度が大幅に向上します。 1MB のメモリ空間には約 8,000 個のキーを保存できるため、上記で設定した 10MB のメモリ空間にはほぼ 80,000 個のキーを保存できます。

4.max_size はキャッシュの上限を設定します (上記の例では 10g)。これはオプションです。値を指定しないと、キャッシュが増大し、利用可能なディスク領域がすべて消費されてしまいます。キャッシュがこの制限に達すると、プロセッサはキャッシュ マネージャーを呼び出して、最も最近使用されていないファイルを削除し、キャッシュ スペースをこの制限以下に減らします。

5.inactive は、項目がアクセスされずにメモリ内に留まる時間を指定します。上の例では、ファイルが 60 分以内に要求されなかった場合、ファイルの有効期限が切れているかどうかに関係なく、キャッシュ管理によってそのファイルがメモリから自動的に削除されます。このパラメータのデフォルト値は 10 分 (10m) です。非アクティブなコンテンツは、期限切れのコンテンツとは異なることに注意してください。 nginx は、キャッシュ コントロール ヘッダー (この例では、cache-control:max-age=120) で指定された期限切れのコンテンツを自動的に削除しません。期限切れのコンテンツは、inactive で指定された時間内にアクセスされなかった場合にのみ削除されます。期限切れのコンテンツにアクセスすると、nginx は元のサーバーからコンテンツを更新し、対応する非アクティブ タイマーを更新します。

6.nginx は、キャッシュに書き込まれるファイルを最初に一時記憶領域に置きます。use_temp_path=off コマンドは、これらのファイルをキャッシュするときに同じディレクトリに書き込むように nginx に指示します。ファイル システム内での不必要なデータ コピーを避けるために、パラメータを off に設定することを強くお勧めします。 use_temp_path は、nginx1.7 バージョンと nginx plus r6 で導入されました。

最終的に、proxy_cache コマンドは、URL が場所の部分 (この場合は /) に一致するコンテンツのキャッシュを開始します。また、proxy_cache コマンドをサーバー セクションに追加すると、独自の proxy_cache コマンドが指定されていない場所にあるすべてのサービスにキャッシュが適用されます。

nginx キャッシュ関連プロセス

キャッシュには 2 つの追加の nginx プロセスが関係します:

  • cacheマネージャ キャッシュのステータスをチェックするために定期的に起動されます。キャッシュ サイズが proxy_cache_path の max_size パラメータで設定された制限を超える場合、キャッシュ マネージャーは最近アクセスしたデータを削除します。キャッシュ マネージャーの起動の間に、キャッシュされたデータの量が構成されたサイズを一時的に超える場合があります。

  • キャッシュ ローダーは、nginx の起動後に 1 回だけ実行されます。以前にキャッシュされたデータに関するメタデータを共有メモリ領域にロードします。キャッシュ全体を一度にロードすると、起動後の最初の数分間に nginx のパフォーマンスが低下するほどのリソースが消費される可能性があります。これを回避するには、proxy_cache_path ディレクティブに次のパラメータを含めてキャッシュの反復ロードを構成します:

    • loader_threshold - 反復期間 (ミリ秒単位) (デフォルトは次の 200)

    • loader_files - 1 回の反復中にロードされるアイテムの最大数 (デフォルトは 100)

    • loader_sleeps - 反復間の遅延 (ミリ秒単位) (デフォルトでは 50)

次の例では、反復は 300 ミリ秒間、または 200 個の項目が読み込まれるまで続きます:

proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;

その他の一般的に使用されるパラメーター

設定例:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

server {
 ...
 location / {
  proxy_cache my_cache;
  # proxy_cache_key "$host$request_uri$cookie_user";   proxy_cache_min_uses 3;
  proxy_cache_methods get head post;
  proxy_cache_valid 200 302 10m;
  proxy_cache_valid 404  1m;
  # proxy_cache_valid any 5m;   proxy_pass http://localhost:8000;
 }
}

対応するパラメータの説明:

  • ##proxy_cache_key キーを計算するときに使用されるリクエストの特性を変更するには、キャッシュされたキー。これは推奨されません。例として、ドメイン名、リクエスト URL、およびユーザー Cookie をキーとして使用します。これは、ページが異なるユーザーに対して n 回キャッシュされることを意味します。ほとんどの場合、この操作は次のとおりです。必要ありません。

  • proxy_cache_min_uses は、応答がキャッシュされる前に同じキーを使用する必要があるリクエストの最小数です。

  • proxy_cache_methods 为指定要被缓存的请求方式的响应值,默认为 get 和 head,新增其他的需要一起列出来,如上示例所示。

  • proxy_cache_valid 为响应状态码的缓存时间,示例可以为每个状态码缓存指定时间,也可以使用 any 进行全部状态码的缓存。

清除缓存

需要提前加一个配置,用于标识使用 http purge 方法的请求并删除匹配的 url 对应的缓存。

1.在 http {} 上下文中创建新变量,例如 $purge_method, 他依赖于 $request_method 变量:

http {
 ...
 map $request_method $purge_method {
  purge 1;
  default 0;
 }
}

2.在 location {} 块中,已经配置缓存的前提下,引入 proxy_cache_purge 参数来指定清除缓存请求的条件。例如在上一步指定的 $request_method

server {
 listen  80;
 server_name www.example.com;

 location / {
  proxy_pass https://localhost:8002;
  proxy_cache mycache;

  proxy_cache_purge $purge_method;
 }
}

配置完并使之生效之后,就可以发送一条 purge 请求来让缓存失效了,例如:

curl -x purge -d – https://www.example.com/*

在该示例中,将清除具有公共 url 部分(由星号通配符指定)的资源。但这些缓存条目不会从缓存中完全删除:它们会保留在磁盘上,直到它们被视为不活动(由proxy_cache_path 中的 inactive参数决定)的时候才完全删除,或缓存清除器(由 proxy_cache_path 中的 purge 决定),或客户端尝试访问它们的时候。

以上がNginx コンテンツ キャッシュを構成する方法と一般的なパラメーター構成は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Apr 19, 2025 am 12:05 AM

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

究極の対決:Nginx vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxユニット:さまざまなプログラミング言語をサポートしますNginxユニット:さまざまなプログラミング言語をサポートしますApr 16, 2025 am 12:15 AM

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境