ウェブサイト検索

Debian 11でNginxをGoogle PageSpeedモジュールと一緒にセットアップする方法


Debian 11でNginxとGoogle PageSpeedモジュールをセットアップする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 11 (Bullseye)
  • Debian 8 (ジェシー)
  • デビアン
  • Debian 7 (Wheezy)

このページで

  1. 前提条件
  2. パッケージの依存関係をインストールする
  3. 現在のNginxバージョンを確認しています
  4. NginxとPagespeedのソースコードをダウンロードする
  5. Nginx Pagespeed モジュールのコンパイル
  6. 現在のNginxインストールにPagespeedモジュールを追加する
  7. あなたのバーチャルホストにNginx Pagespeedモジュールを追加する
  8. Nginx ページ速度モジュールの確認
  9. 結論

Google Pagespeedモジュールは、NginxおよびApacheウェブサーバーの下であなたのウェブサイトを最適化するためのオープンソースモジュールです。Pagespeedモジュールは、NginxおよびApacheウェブサーバーと共にインストールされるサーバーレベルのモジュールです。

Pagespeedモジュールは、ウェブサイト上の静的ファイルを最適化することによって、ウェブサイトのパフォーマンスと速度を向上させます。Pagespeedモジュールは、ウェブサイト上の画像を最適化し、HTML、CSS、JavaScriptなどの静的ファイルを圧縮し、ファイルキャッシングを最適化します。

このチュートリアルでは、最新のDebian 11 Bullseye上でNginx Pagespeedモジュールを構築する方法を示します。このガイドは、Nginxモジュールを構築するだけなので、現在のNginxインストールにも適用できます。

前提条件

始める前に、次の要件を満たしていることを確認してください。

  • オペレーティングシステム: Debian 11 Bullseye
  • ルート権限

さあ、始めましょう。

パッケージの依存関係をインストールする

まず、Nginxモジュールをコンパイルするためのパッケージ依存関係をインストールします。

1. 以下のaptコマンドを実行して、システムの現在のリポジトリを更新します。

sudo apt update

2. 次に、次のaptコマンドを使用してプログラムをコンパイルするための基本的なパッケージ依存関係をインストールします。

sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y

3. その後、Nginxモジュールをコンパイルするためのビルド依存関係をインストールします。

sudo apt build-dep nginx -y

現在のNginxバージョンを確認しています

カスタムNginx Pagespeedモジュールを構築するには、現在のNginxウェブサーバーが、Nginxモジュールを構築するために使用するNginxのソースコードのバージョンと同じであることを確認してください。

1. 次のコマンドを実行してNginxのバージョンを確認します。

nginx -v

この例では、私たちのマシンにインストールされている現在のNginxのバージョンは「1.18.0」です。以下は、あなたが見ることになる類似の出力です。

nginx version: nginx/1.18.0

オプションとして、システムにNginxパッケージがない場合は、以下のaptコマンドを使用して公式のDebianリポジトリからインストールしてください。

sudo apt install nginx -y

次に、以下のコマンドを使用してNginxのバージョンのための新しい一時環境変数を作成します。

export NG_VER=1.18.0

NginxとPagespeedのソースコードをダウンロードする

このステップでは、NginxのソースコードとPagespeedモジュールをサーバーにダウンロードします。このNginxのソースコードは、現在のNginxパッケージと同じバージョンになります。

1. 新しいプロジェクトディレクトリ「/usr/src/nginx」を作成し、その中に入ります。

mkdir -p /usr/src/nginx; cd /usr/src/nginx

2. 次に、以下のコマンドを実行してNginxのソースコードをダウンロードし、解凍します。

wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz

次に、現在のディレクトリにNginx Pagespeedモジュールをクローンし、プロセスが完了すると、新しいディレクトリ「incubator-pagespeed-ngx」が表示されます。

git clone https://github.com/apache/incubator-pagespeed-ngx.git

4. 'incubator-pagespeed-ngx' ディレクトリに移動し、Nginx Pagespeed モジュールの安定版ブランチに切り替えます。

cd incubator-pagespeed-ngx/
git checkout latest-stable

5. ファイル「PSOL_BINARY_URL」をチェックして、ページ最適化ライブラリ(PSOL)のダウンロードリンクを取得します。このライブラリは、Nginx Pagespeedモジュールに必要です。

cat PSOL_BINARY_URL

次のような出力が表示されます。変数「$BIT_SIZE_NAME」はサーバーアーキテクチャを示しています。

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

6. では、新しい一時環境変数「BIT_SIZE_NAME」を作成し、サーバーアーキテクチャの値を設定します。以下の例では「x64」または64ビットサーバーアーキテクチャを使用しています。

export BIT_SIZE_NAME=x64

7. それではPSOLのソースコードをダウンロードして抽出してください。

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz

これでNginx Pagespeedモジュールを構築する準備が整いました。

Nginx Pagespeed モジュールのコンパイル

このステップでは、NginxのPageSpeedモジュールをコンパイルします。最終的には、現在のNginxウェブサーバーに適用できる'.so'形式のNginxモジュールを得ることができます。

1. 作業ディレクトリをNginxプロジェクトディレクトリに変更します。

cd /usr/src/nginx/nginx-$NG_VER

2. 次のコマンドを実行して、Nginxモジュールのコンパイルを設定します。このコマンドは、システムの要件も確認しますので、エラーがないことを確認してください。

./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx

以下があなたが得るべき出力です。

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library
  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

次に、次のコマンドを使用してNginx Pagespeedモジュールをコンパイルします。

make modules

このコマンドは、あなたのシステムのCPUとメモリに応じて、少し時間がかかります。

4. コンパイルプロセスが終了すると、あなたのPagespeedモジュールは「objs/ngx_pagespeed.so」として利用可能になります。次のコマンドを使用してモジュールを確認してください。

ls objs/ngx_pagespeed.so

下記のように、NginxのPagespeedモジュール'ngx_pagespeed.so'を取得すべきです。

-rwxr-xr-x 1 root root 19M Dec  8 21:44 objs/ngx_pagespeed.so

現在のNginxインストールにPagespeedモジュールを追加する

このステップでは、現在のNginxインストールにNginx Pagespeedモジュールを実装します。そのためには、Pagespeedモジュールの 'ngx_pagespeed.so' をNginxモジュールディレクトリにコピーし、それを有効にするための新しい設定を追加します。

1. モジュール「ngx_pagespeed.so」をデフォルトのNginxモジュールディレクトリ「/usr/share/nginx/modules」にコピーします。

cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules

2. Pagespeeddモジュールを有効にするために、新しい設定ファイルを作成します。

nano /usr/share/nginx/modules-available/ngx-pagespeed.conf

次の設定をコピーして貼り付けます。

load_module modules/ngx_pagespeed.so;

設定を保存して終了します。

3. Pagespeed モジュールを有効にするために、'ngx-pagespeed.conf' のシンボリックリンク構成を '/etc/nginx/modules-enabled/' ディレクトリに作成します。

ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf

4. 次に、'/etc/nginx' ディレクトリに新しい設定ファイル 'pagespeed.conf' を作成します。

nano /etc/nginx/pagespeed.conf

次の設定をコピーして貼り付けます。

pagespeed on;
Needs to exist and be writable by nginx.  Use tmpfs for best performance.
pagespeed FileCachePath /var/ngx_pagespeed_cache;
Ensure requests for pagespeed optimized resources go to the pagespeed handler
and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }

設定を保存して終了します。

5. 次に、Nginx Pagespeed キャッシュを保存するための新しいディレクトリを作成し、そのディレクトリが Nginx の「www-data」ユーザーによって書き込み可能であることを確認してください。

mkdir -p /var/ngx_pagespeed_cache
chown www-data:www-data /var/ngx_pagespeed_cache

現在、Nginx Pagespeed モジュールがあなたの現在の Nginx インストールに追加されました。次のステップに進んで、仮想ホスト(サーバーブロック)でそれを有効にしてください。

仮想ホストにNginx Pagespeedモジュールを追加する

ページスピードモジュールをあなたのバーチャルホストに有効にするには、pagespeed.confという設定を、'include'オプションを使用してあなたのバーチャルホスト設定ファイルに追加してください。

1. この例では、仮想ホスト「default」に Pagespeed モジュールを追加して有効にします。nano エディタを使用して設定「/etc/nginx/sites-available/default」を編集します。

nano /etc/nginx/sites-available/default

以下のように、セクション「server {...}」の中に設定「include /etc/nginx/pagespeed.conf;」を追加してください。

server {
  .....
  ....
  include /etc/nginx/pagespeed.conf;
}

設定を保存して終了する。

2. Nginxの設定を確認し、エラーが発生しないことを確認してください。その後、新しい設定を適用するためにNginxサービスを再起動してください。

nginx -t
sudo systemctl restart nginx

Nginx ページ速度モジュールの確認

Nginx Pagespeedモジュールのインストールと実装を確認するには、curlコマンドを使用してNginxウェブサーバーのHTTPヘッダーを取得するか、ウェブブラウザで要素を検査する機能を使用できます。

1. 以下のcurlコマンドを実行して、あなたのNginxウェブサーバーのHTTPヘッダーを取得してください。

curl -I https://domain.com/

これで、以下のような出力が得られるはずです。追加のヘッダーセクション「X-Page-Speed」は、Nginx Pagespeedモジュールが有効になっていることを意味します。

HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html
Connection: keep-alive
Date: Wed, 01 Dec 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

2. ウェブブラウザからチェックするには、ドメイン名にアクセスし、ページを右クリックして、'検査'メニューを選択します。

もう一度ウェブページを再読み込みすると、以下のような詳細なHTTPヘッダーが表示されます。

結論

おめでとうございます!あなたはNginx Pagespeedモジュールのコンパイル方法を学び、現在のNginxインストールに実装することができるようになりました。仮想ホストの設定に「pagespeed.conf」を含めるだけです。

関連記事: