ホームページ  >  記事  >  運用・保守  >  Nginx を使用して動的コンテンツ キャッシュを行う方法

Nginx を使用して動的コンテンツ キャッシュを行う方法

PHPz
PHPzオリジナル
2023-08-03 16:42:241813ブラウズ

動的コンテンツ キャッシュに Nginx を使用する方法

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーであり、高性能 Web サイトやアプリケーションの構築に広く使用されています。 Nginx はサーバーとしてだけでなく、静的および動的コンテンツをキャッシュするキャッシュ サーバーとしても使用できます。この記事では、Nginx を使用して動的コンテンツをキャッシュし、Web サイトのパフォーマンスとユーザー エクスペリエンスを向上させる方法を紹介します。

Nginx は proxy_cache モジュールを使用してキャッシュ機能を実装します。以下は、簡単な設定ファイルの例です。

http {
  proxy_cache_path /path/to/cache keys_zone=my_cache:10m;

  server {
    listen 80;
    server_name example.com;

    location / {
      proxy_pass http://backend;
      proxy_cache my_cache;
      proxy_cache_key $scheme$host$request_uri;
      proxy_cache_valid 200 302 10m;
      proxy_cache_valid 404 1m;
    }
  }

  upstream backend {
    server backend.example.com;
  }
}

上記の設定ファイルでは、キャッシュ ディレクトリ /path/to/cache を定義し、それに my_cache# という名前のファイルを割り当てます。 ##keys_zone により、Nginx がキャッシュの内容をこのディレクトリに保存できるようになります。次に、サーバー ブロック内の場所でプロキシ モードを有効にし、リクエストをバックエンド サーバー backend.example.com に転送します。

proxy_cache 関連の設定では、proxy_cache_key ディレクティブを使用してキャッシュ キーを定義します。ここでは、要求されたスキーム、ホスト、および request_uri をキャッシュ キーとして使用します。これにより、同じリクエストが確実にキャッシュされ、同じリクエストがバックエンド サーバーに複数回送信されることが回避されます。

また、proxy_cache_valid ディレクティブを使用してキャッシュの有効期間を定義します。戻りコード 200 および 302 の応答の場合、有効時間を 10 分に設定し、戻りコード 404 の応答の場合、有効時間を 1 分に設定します。このようにして、異なるリターン コードに基づいて異なるキャッシュ時間を設定できます。

設定が完了したら、ファイルを保存し、Nginx 設定をリロードします。次に、リクエストが到着すると、Nginx はまずキャッシュがあるかどうかを確認し、キャッシュがある場合はキャッシュの内容を直接返し、ない場合はリクエストをバックエンド サーバーに転送し、応答をキャッシュに保存します。

Nginx のキャッシュはファイルベースであることは注目に値します。つまり、動的コンテンツのキャッシュは通常、静的ファイルとして保存されます。したがって、動的コンテンツが頻繁に変更される場合、またはユーザー固有の情報に基づいてコンテンツを返す必要がある場合は、キャッシュの更新戦略に注意を払う必要があります。

Nginx を動的コンテンツ キャッシュに使用すると、Web サイトのパフォーマンスとユーザー エクスペリエンスが大幅に向上します。キャッシュがヒットすると、リクエストの繰り返し処理が回避され、バックエンドサーバーの負荷が軽減されると同時に、静的ファイルの送信速度が速くなるため、ページの読み込み時間も短縮され、ユーザーのアクセスエクスペリエンスを向上させることができます。

この記事が、動的コンテンツ キャッシュに Nginx を使用する方法を誰もが理解するのに役立つことを願っています。ご質問がございましたら、ディスカッションのためにメッセージを残してください。

以上がNginx を使用して動的コンテンツ キャッシュを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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