ホームページ >運用・保守 >Apache >mod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成するにはどうすればよいですか?

mod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成するにはどうすればよいですか?

Johnathan Smith
Johnathan Smithオリジナル
2025-03-11 17:25:16114ブラウズ

この記事では、Webサイトのパフォーマンスを改善するために、Apacheのmod_expiresとmod_cacheの構成を詳しく説明しています。静的コンテンツ(mod_expires)の有効期限を設定する方法と、ベストプラクティスを含むサーバー側のキャッシュ(mod_cache)を実装する方法を説明します

mod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成するにはどうすればよいですか?

mod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成する方法

mod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成すると、サーバーの負荷を削減し、訪問者を返すためのページの負荷を高速化することにより、Webサイトのパフォーマンスが大幅に向上します。両方の方法を探りましょう。

mod_expiresの使用: mod_expiresはよりシンプルで、静的コンテンツをキャッシュする時間をブラウザに指示することに焦点を当てています。サーバー上の実際のキャッシュは含まれません。 Apache構成ファイル(通常はhttpd.confまたは許可されている場合は.htaccessファイル)内で構成します。これが例です:

 <code class="apache"><filesmatch> ExpiresActive On ExpiresDefault "access plus 1 month" </filesmatch></code>

このスニペットは、ユーザーがアクセスしてから1か月間、 .jpg.jpeg.png.gif.css 、および.jsで終了するファイルをキャッシュするようにブラウザに指示します。 ExpiresDefault指令を調整して、異なる有効期限を設定できます。その他のオプションには、 accessmodification 、およびさまざまな時間仕様(「アクセスと1週間」、「アクセスと1年」)が含まれます。構成ファイルを変更した後、Apacheを再起動することを忘れないでください。

mod_cacheの使用: mod_cache 、サーバー自体のより強力なキャッシュコンテンツです。これにより、キャッシュされたコンテンツを直接提供することにより、Origin Serverの負荷が削減されます。その構成はより複雑で、キャッシュディレクトリとさまざまなパラメーターを指定する必要があります。基本的な例:

 <code class="apache">CacheRoot "/path/to/cache/directory" CacheDirLevels 2 CacheDirLength 2 CacheMaxFileSize 1M</code>

CacheRoot 、キャッシュディレクトリの場所を定義します。 CacheDirLevelsCacheDirLength 、キャッシュ内のディレクトリ構造を決定します。 CacheMaxFileSize 、キャッシュされたファイルのサイズを制限します。どのコンテンツをキャッシュするか、キャッシュを維持する時間を指定するなど、より高度なオプションについては、Apacheドキュメントを参照する必要があります。 mod_cacheの適切な構成には、サーバーのリソースとウェブサイトのトラフィックパターンを慎重に検討する必要があります。

Webサイトのパフォーマンスを最適化するためにApacheのキャッシュモジュールを構成するためのベストプラクティス

パフォーマンスのためにApacheのキャッシュモジュールを最適化するには、全体的なアプローチが必要です。

  1. 適切なモジュールを選択してください。単純なシナリオの場合、 mod_expiresで十分です。大幅なパフォーマンスの向上とサーバーの負荷の削減には、特にトラフィックが多い場合、 mod_cacheが必要です。
  2. 積極的だが安全な有効期限:有効期限を適切に設定します。静的資産(画像、CSS、JavaScript)の場合、より長い有効期限(月または1年)は一般的に問題ありません。動的なコンテンツの場合、より短い有効期限(分または時間)がより適しています。頻繁に変化するコンテンツのキャッシュを避けることを常に優先してください。
  3. 効率的なキャッシュ管理: mod_cacheの場合、定期的なキャッシュクリーニングが重要です。古いファイルまたは未使用のファイルはディスクスペースを消費し、パフォーマンスに悪影響を与える可能性があります。適切なキャッシュサイズ制限を構成し、自動クリーンアップメカニズムを検討します。
  4. コンテンツネゴシエーション:適切なContent-Typeヘッダーを使用して、ブラウザがアセットの正しいバージョン(さまざまなデバイスの異なる画像形式)を要求してキャッシュするようにします。
  5. 適切なヘッダー処理: Webサーバーが適切なキャッシュヘッダーを送信していることを確認してください(例、 Cache-ControlExpiresETagLast-Modified )。これらのヘッダーは、キャッシュの処理方法についてブラウザをガイドします。
  6. キャッシュの有効性を監視する:サーバーログとキャッシュ統計を定期的に監視して、キャッシュ戦略の有効性を評価します。アドレス指定が必要なボトルネックまたは問題を特定します。
  7. CDNを検討してください:コンテンツ配信ネットワーク(CDN)は、地理的にユーザーに近いキャッシュコンテンツをキャッシュすることでパフォーマンスを大幅に改善できます。 Apacheキャッシングと組み合わせてCDNを使用すると、最適なパフォーマンスを提供できます。

apacheでmod_expiresまたはmod_cacheを使用する際のキャッシングの問題をトラブルシューティングする方法

キャッシュの問題のトラブルシューティングには、体系的な調査が必要です。

  1. サーバーログを確認します:キャッシュに関連するエラーについてApacheエラーログを調べます。これらのログは、多くの場合、構成の問題やキャッシュされたファイルの問題に関する手がかりを提供します。
  2. ブラウザのキャッシュの検査:ブラウザの開発者ツール(通常はF12を押してアクセス可能)を使用して、ネットワークリクエストを検査し、ブラウザがファイルを正しくキャッシュしているかどうかを確認します。 Cache-Controlを探して、応答ヘッダーのヘッダーのExpires
  3. 構成を確認します: Apache構成ファイル( httpd.conf.htaccessなど)を再確認して、キャッシュモジュールが有効になり、正しく構成されていることを確認します。構文とファイルパスに細心の注意を払ってください。
  4. さまざまなブラウザでテスト:さまざまなブラウザでウェブサイトをテストして、ブラウザ固有のキャッシュの問題を除外します。
  5. クリアブラウザキャッシュ:破損したブラウザキャッシュが問題を引き起こすことがあります。ブラウザのキャッシュとCookieをクリアして、再試行してください。
  6. Apacheを再起動する: Apacheサーバーの簡単な再起動は、多くの場合、一時的なキャッシングの問題を解決することができます。
  7. キャッシュツールを使用する:特定のヘッダー付きのcurlなどのツールを使用して、サーバーがキャッシュヘッダーで正しく応答し、キャッシュコンテンツを提供しているかどうかをテストします。
  8. デバッグを有効にする:利用可能な場合は、キャッシュモジュール構成内のデバッグオプションを有効にして、キャッシュ動作に関するより詳細な情報を収集します。

これらのモジュールを使用して、Apacheのさまざまなファイルタイプまたはディレクトリのキャッシュルールを選択的に構成できますか?

はい、 mod_expiresmod_cache両方で、ファイルの種類とディレクトリに基づいて選択的な構成を可能にします。

MOD_EXPIRESSを使用:最初の例に示すように、 FilesMatchディレクティブを使用して、特定のファイルの種類または場所に一致するパターンを指定できます。複数のFilesMatchブロックを作成して、さまざまなファイルタイプの異なるルールを定義できます。

mod_cacheで: mod_cacheより詳細な制御を提供します。さまざまなディレクティブを使用して、ファイルの種類、URL、またはディレクトリに基づいてキャッシュルールを定義できます。たとえば、特定のディレクトリのみをキャッシュするか、キャッシュから特定のファイルタイプを除外することを選択できます。利用可能な特定のディレクティブは、使用しているApacheとmod_cacheのバージョンによって異なります。これらの高度な構成オプションの詳細については、Apacheドキュメントを参照してください。位置ブロック( <location></location>または<directory></directory> )は、一般に、Webサイトの特定の部分のキャッシュルールを定義するために使用されます。例えば:

 <code class="apache"><directory> CacheEnable disk </directory> <directory> CacheDisable </directory></code>

この例は/path/to/static/filesのファイルのディスクキャッシュを可能にし、 /path/to/dynamic/contentのキャッシュを無効にします。不適切な構成は予期しない動作につながる可能性があるため、選択的なキャッシュルールを慎重に計画することを忘れないでください。

以上がmod_expiresまたはmod_cacheを使用してApacheでブラウザキャッシュを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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