序章

Apacheで最近人気のあるモジュールの1つは、mod_pagespeedです。 これは、Apache 2.2以降の出力フィルターであり、構成ファイルまたは.htaccessファイルを介してさまざまなオプションで構成できます。 「出力フィルター」は、データがクライアントに送信される前にデータを変換するものです。 言い換えれば、それはあなたのウェブサイトとユーザーがあなたのURLにアクセスしたときにユーザーのブラウザが受け取るものとの間の層です。

Webを高速化

mod_pagespeedの目標は、Webサイトを高速化することです。 これは、さまざまなファイルにフィルターを適用して、ブラウザーが必要なものを取得するために必要なトリップ数を減らし、それらのファイルのサイズを減らし、それらのファイルがキャッシュされる長さを最適化することによって行われます。

インストール

インストールはとても簡単です。 使用するオペレーティングシステムによって異なります。 UbuntuとDebianには、ダウンロードしてインストールできるパッケージ(または.DEBパッケージを使用するLinuxディストリビューション)があります。 他のLinuxディストリビューションは、ソースをダウンロードしてそこからビルドできます。

64ビットバージョンを使用している場合(おそらく)…

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm

32ビットバージョンを使用している場合(可能性は低いです)…

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm

に続いて:

yum install at

(’at’がまだインストールされていない場合)

rpm -U mod-pagespeed-*.rpm

ダウンロードしたパッケージを削除します

rm mod-pagespeed-*.deb

注:ソースからのインストールは、この記事の範囲外です。 あなたはここでグーグルからの詳細な指示を見つけることができます:ソースからMod_Pagespeedを構築する

モジュールは、インストール時に自動的に有効になります。 ただし、動作を開始するには、Apacheを再起動する必要があります。

/etc/init.d/httpd restart

これで、VPSでmod_pagespeedの動作バージョンが稼働しているはずです。 これは、ページの応答ヘッダーを確認することで確認できます。 インストールしたバージョン番号で「X-Mod-Pagespeed」の値が必要です。

設定

インストールパッケージは、すぐに使用できる多くの構成を処理します。 実際、Apacheで自動的に有効になる控えめなデフォルトがあります。 実行しているApacheのバージョンに応じて、異なるバージョンのモジュールがインストールされ、有効になります。 Apache 2.2を実行している場合は、 mod_pagespeed.so インストールされます。 Apache2.4ユーザーは mod_pagespeed_ap24.so.

注:mod_pagespeedは、Apache2.2以降でのみ機能します。 Apache 2.4.1には、そのバージョンでの動作を妨げるバグもあります。 Apache2.4.2以降を使用する必要があります。

さらに、構成ファイルがApacheインストールに追加されました。 一次構成ファイルは pagespeed.conf. このファイルは次の場所にあります。

/etc/httpd/conf.d/

構成

必要に応じて、今すぐ停止できます。 mod_pagespeedのデフォルトは適切ですが、サイトにいくつかの追加の調整を加えることで、パフォーマンスを向上させることができる場合がよくあります。 すべてのサイトは、さまざまな設定でさまざまな結果を得ることができます。いろいろと試して、自分と自分のサイトに最適な設定を見つけるのが最善です。

このチュートリアルでは、より一般的な設定のいくつかについて説明します。

mod_pagespeedを設定する方法

mod_pagespeedを構成する方法はいくつかあります。 上記のpagespeed.confファイルを使用して、クラウドサーバー全体用に構成できます。 または、必要に応じて、Apache仮想ホスト/WebサイトのVirtualHostディレクティブに構成設定を配置することもできます。 最後に、ほとんどのサイトがmod_rewriteに対して行うことなど、.htaccessファイルでディレクティブを指定するオプションがあります。

これらのオプションの中で最もパフォーマンスが低いのは.htaccessファイルです。これは、すべてのリクエストでロードする必要があるためです。 pagespeed.confファイルはApacheの起動時にロードされるため、構成設定を保存するのに理想的な場所です。 同じ理由で、VirtualHostディレクティブの内部は、サイトのhtaccessファイルの内部よりも望ましいです。 これは、サイト固有の設定を行うのにも適した場所です。

構成ファイルを編集するテキストエディタを使用できます。 このチュートリアルでは、nanoを使用します。

メイン構成ファイルの編集を開始するには、次のコマンドを使用します。

nano /etc/httpd/conf.d/pagespeed.conf

基本設定

一般に、pagespeed.confの設定は、ファイル内にかなりよく文書化されています。 http://www.modpagespeed.comから入手できるフィルターの例の素晴らしいリストもあります。 サイトのパフォーマンスを最適化するために使用する可能性のあるいくつかの一般的な設定を次に示します。

mod_pagespeedをオン/オフにします

まず、ModPagespeed設定を使用してモジュールをオンまたはオフにできます。

ModPagespeed on

また

ModPagespeed off

レベルの書き換え

設定のさまざまな「レベル」を指定して、構成を簡素化できます。 デフォルトは “CoreFilters.” これには、Googleチームが安全に使用できると信じている一連のフィルターが含まれています。 フィルタは、ファイルに適用される個々のアクションです。 通常、この値を変更する必要はありません。 このデフォルトを使用してから、を使用してフィルターを有効または無効にする方が簡単です。 ModPagespeedEnableFiltersModPagespeedDisableFilters ディレクティブ。

デフォルト設定:

ModPagespeedRewriteLevel CoreFilters

CoreFiltersを無効にするには、次の設定を使用します。

ModPagespeedRewriteLevel PassThrough

注:「PassThrough」設定を使用して、オンにするフィルターを明示的に有効にする必要があります。

デフォルトの「CoreFilters」書き換えレベルを使用すると、デフォルトでいくつかのフィルターが含まれます。 この記事の執筆時点では、次のものが含まれています。

add_head
combine_css
convert_jpeg_to_progressive
convert_meta_tags
extend_cache
flatten_css_imports
inline_css
inline_import_to_link
inline_javascript
rewrite_css
rewrite_images
rewrite_javascript
rewrite_style_attributes_with_url

将来、新しいフィルターが追加される予定です。 CoreFiltersを使用すると、mod_pagespeedを更新するたびにこれらのフィルターがデフォルト設定の一部になると、これらのフィルターが自動的に有効になります。 PassThroughを使用するには、新しいフィルターを明示的に有効にする必要があります。

フィルタを有効にする

追加のフィルターを有効にする場合は、それらをコンマ区切りのリストとしてに渡すことができます。 ModPagespeedEnableFilters. 構成ファイル全体に複数のModPagespeedEnableFiltersディレクティブを含めることができます。 したがって、サイトごとにフィルターを有効にする場合は、メインのpagespeed.confファイルではなく、仮想ホスト構成ファイルまたは.htaccessファイルでフィルターを有効にすることができます。

次に、Pedanticフィルター(スクリプトタグとスタイルタグにtype属性を追加する)とコメントの削除フィルター(すべてのHTMLコメントを削除する)を有効にする例を示します。

ModPagespeedEnableFilters pedantic,remove_comments

フィルタを無効にする

必要に応じて、ケースごとにフィルターを無効にすることもできます。 無効にするフィルターのリストを指定します。

ModPagespeedEnableFilters

次の例では、CoreFiltersセットの一部であっても、「JPEGをプログレッシブに変換」フィルターを無効にします。

ModPagespeedDisableFilters convert_jpeg_to_progressive

書き換えるURLを指定する

デフォルトでは、mod_pagespeedは可能な限りすべてを書き換えます。 次のディレクティブを使用して、特定のファイル(Javascriptライブラリなど)の書き換えを無効にすることができます。

ModPagespeedDisallow "*/jquery-ui-*.min.js"

これにより、指定されたワイルドカードパターン(この場合はjquery UI)に一致するファイルの書き換えが無効になります。

デフォルトですべてのファイルの書き換えをオフにし、手動で書き換えたいファイルのみを有効にすることもできます。 これは、次の設定で実行できます。

ModPagespeedDisallow "*" 
ModPagespeedAllow "http://*digitalocean.com/*/styles/*.css" 
ModPagespeedAllow "http://*digitalocean.com/*.html" 
ModPagespeedDisallow "*/notrewritten.html"

実行順序は、digitalocean.comの.htmlで終わるすべてのファイルが書き換えられることを意味します。 その最後のDisallowディレクティブは、そのパターンに一致するURLが以前の設定を上書きするため、書き換えられないことを意味します。

Apacheを再起動します

pagespeed.confまたはVirtualHostファイルを使用して設定を変更している場合は、設定を有効にするためにApacheを再起動する必要があることを忘れないでください。 これは、次のコマンドで実行できます。

/etc/init.d/httpd restart

結論

このガイドは、mod_pagespeedの使用を開始するのに役立ちます。 サーバー全体またはサイトごとに適用できる設定やディレクティブは他にもたくさんあります。 さらに、mod_pagespeedは活発に開発されているため、毎日変更されています。 詳細については、Googleが運営するhttp://www.modpagespeed.comにアクセスしてください。

さらに、https://developers.google.com/speed/pagespeed/modで公式のmod_pagespeedサイトをチェックできます。