Boost
Boostは、Drupalの静的ページキャッシュを提供し、主に匿名トラフィックを受けるサイトのパフォーマンスを大幅に向上させます。
boost
概要
Boostは、匿名トラフィックが多いDrupalサイトのパフォーマンスとスケーラビリティを劇的に向上させる静的ページキャッシュモジュールです。HTMLページ全体をパブリックファイルディレクトリ内の静的ファイルとしてキャッシュし、Webサーバー(NginxまたはApache)がPHPを実行せずにこれらのファイルを直接配信できるようにします。
このモジュールは、匿名ユーザーへのレスポンスをインターセプトし、レンダリングされたHTMLをファイルシステムに保存することで動作します。同じページが再度リクエストされると、キャッシュされたファイルがWebサーバーから直接配信され、Drupalを完全にバイパスします。これにより、キャッシュなしの約8リクエスト/秒から、適切なWebサーバー設定で約20,000リクエスト/秒へとパフォーマンスが向上する可能性があります。
Boostには、エンティティパス生成、XMLサイトマップのクロール、パスエイリアス生成など、複数のキャッシュ生成戦略(キャッシュウォーミング)が含まれています。キャッシュのパージは、手動、システムの最大キャッシュ有効期間に基づくcron、またはDrushコマンドを通じて実行できます。
Features
- 匿名ユーザー向けの静的HTMLページキャッシュ(ファイルはpublic://boost/ディレクトリに保存)
- 匿名ユーザーによる初回ページ訪問時の自動キャッシュ生成
- 複数のキャッシュウォーミング戦略:エンティティパス、XMLサイトマップのクロール、すべてのパスエイリアス
- システムのキャッシュ最大有効期間設定に基づくcronによる自動キャッシュパージ
- 特定のパスをキャッシュに含める/除外するためのパスベースのキャッシュ可能性設定
- 超高速キャッシュパージのためのオプションのシェルコマンド実行(find/rm)
- キャッシュステータス(partialまたはfull)を示すX-Boost-Cacheレスポンスヘッダー
- キャッシュ生成およびパージ操作のための進捗UI付きバッチ処理
- CLIベースのキャッシュ管理のための完全なDrushコマンド統合
- キャッシュ生成クロール時のBasic認証サポート
Use Cases
高トラフィックのニュースサイトやコンテンツサイト
Boostは、主に匿名トラフィックを受けるニュースサイト、ブログ、コンテンツ重視のサイトに最適です。レンダリングされたHTMLページをキャッシュすることで、サーバーリソースを増やすことなく、より多くの同時訪問者を処理できます。適切なNginx設定により、サイトは約8リクエスト/秒から約20,000リクエスト/秒に向上させることができます。
共有ホスティング環境
Varnishや他のリバースプロキシキャッシュをインストールできない共有ホスティングでは、Boostがパフォーマンス向上のための最良の選択肢です。静的HTMLファイルはWebサーバーから直接配信でき、PHPの実行オーバーヘッドを削減します。
SEOのためのスケジュールされたキャッシュウォーミング
スケジュールされたcronジョブでDrushコマンドを使用して、トラフィックピーク前にキャッシュファイルを事前生成します。XMLサイトマップをクロールすることで、すべての重要なページが訪問者と検索エンジンクローラーのためにキャッシュされ準備完了になります。
ECサイトの商品カタログ
商品カタログの匿名ブラウジングがあるECサイトでは、Boostが商品一覧ページと詳細ページをキャッシュし、ブラウジングパフォーマンスを向上させながら、認証されたカートやチェックアウトページは動的なままにできます。
Tips
- 最適なパフォーマンスのために、boostキャッシュディレクトリを指すtry_filesディレクティブを使用してNginxが静的キャッシュファイルを直接配信するよう設定してください
- 大規模サイトでは、すべての重要なページが事前にキャッシュされるようにXMLサイトマップクロール戦略を使用してください
- PHPシェルコマンドが許可されているサーバーでは、execオプションを有効にして超高速のキャッシュパージを実現してください
- 自動化されたキャッシュメンテナンスのために、boost:purge-max-ageとgenerateコマンドを実行するcronジョブを設定してください
- 異なるコンテンツタイプに対して異なるキャッシュ生成戦略の使用を検討してください - ノードにはエンティティパス、サイト全体のカバレッジにはXMLサイトマップ
- キャッシュファイルはデフォルトでpublic://boost/に保存され、ファイル拡張子は.htmlです
- ブラウザの開発者ツールでX-Boost-Cacheレスポンスヘッダーを確認して、Boostが正常に動作していることを常に検証してください
Technical Details
Admin Pages 1
/admin/config/development/performance/boost
Boost静的ページキャッシュ設定を構成し、キャッシュ生成戦略を管理し、キャッシュファイルのカウント、パージ、生成などのキャッシュ管理操作を実行します。
権限 1
Hooks 2
hook_cron
Boost設定で「Cron purge maximum age」オプションが有効な場合、システムのキャッシュ最大有効期間に基づく自動キャッシュパージを実装します。
hook_help
ヘルプページでBoostモジュールのヘルプテキストを提供し、モジュールの目的とインストール要件を説明します。
Drush Commands 6
drush boost:count-cache-files
Boostキャッシュディレクトリ内のキャッシュファイル数をカウントします。
drush boost:generate-entity-paths
設定で定義されたエンティティパスのキャッシュファイルを生成します。HTTPリクエストによるバッチ処理でキャッシュをウォームアップします。
drush boost:generate-xmlsitemap-crawl
設定で定義されたXMLサイトマップをクロールしてキャッシュファイルを生成します。各サイトマップを解析し、見つかったすべてのURLをリクエストします。
drush boost:generate-aliases-all
システム内のすべてのパスエイリアスのキャッシュファイルを生成します。大規模サイトでは推奨されません。
drush boost:purge
バッチ処理を使用してすべてのBoostキャッシュファイルをパージ(削除)します。
drush boost:purge-max-age
システムのキャッシュ最大有効期間設定より古いキャッシュファイルをパージします。スケジュールされたキャッシュ無効化に便利です。
Troubleshooting 4
「partial」ヘッダーはPHPがまだ実行されていることを意味します。Webサーバー(NginxまたはApache)がキャッシュされた静的ファイルを直接配信するように設定する必要があります。モジュールのREADME.mdファイルにあるNginxまたはApacheの設定例を確認してください。
匿名ユーザーとしてページにアクセスしていることを確認してください。Boostは匿名ユーザーのレスポンスのみをキャッシュします。また、パスキャッシュ可能性設定でページが除外されていないか確認してください。
キャッシュファイルを生成するDrushコマンドは、HTTPリクエストを行うために--uriオプションが必要です。使用例: drush boost:generate-entity-paths --uri=https://yoursite.com
cronが正常に動作していること、およびBoost設定で「Cron purge maximum age」オプションが有効になっていることを確認してください。また、システムのパフォーマンスページのキャッシュ最大有効期間が0(キャッシュなし)より大きいことを確認してください。
Security Notes 5
- Boostは匿名ユーザーのコンテンツのみをキャッシュします - 認証されたユーザーのコンテンツは決してキャッシュされません
- モジュールはページのキャッシュ可能性設定を尊重し、/user/*などの機密性の高いパスをキャッシュから除外します
- シェル実行モードを使用する場合は、boostキャッシュディレクトリに適切な権限があることを確認してください
- キャッシュされたHTMLファイルはパブリックファイルディレクトリに保存されます - Webサーバーがディレクトリリスティングを防ぐように設定されていることを確認してください
- キャッシュ生成用のBasic認証資格情報は設定に保存されます - 適切な設定管理プラクティスを使用してください