GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04でngx_pagespeedモジュールを使用してNginxをコンパイルします

ngx_pagespeedは、ウェブサイトの速度を最適化するためのベストプラクティスを自動的に適用するオープンソースのNginxモジュールです。このチュートリアルでは、Ubuntu16.04LTSでngx_pagespeedモジュールを使用してNginxをコンパイルする方法について説明します。

1。 Nginx構成ファイルのバックアップ

Nginxをコンパイルしてインストールすると、元のNginx構成ファイルが上書きされます。次のコマンドを使用して、メインの構成ファイルとサーバーブロックファイルをホームディレクトリにバックアップできます。チルダはホームディレクトリを表します。

cp /etc/nginx/nginx.conf /etc/nginx/sites-available/*.conf /etc/nginx/conf.d/*.conf ~

2。公式のNginxリポジトリを追加する

チュートリアルでは、この記事の執筆時点で、最新のNginxメインラインバージョン1.11.1をコンパイルする方法を示します。 Ubuntu16.04リポジトリにはNginx1.10があります。以下に示すように、公式のNginxリポジトリを追加します。

最初にNginxGPGキーをフェッチし、Ubuntu16.04システムにインポートします。

wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

次に、sources.listを編集します ファイル。

sudo nano /etc/apt/sources.list

このファイルの最後に次の2行を追加します。 deb-src行を使用すると、apt sourceを使用してNginxソースパッケージをダウンロードできます。 コマンド。

deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

Ctrl+Oを押してファイルを保存します。 Ctrl+Xを押してファイルを閉じます。次に、ローカルパッケージインデックスを更新します。

sudo apt update

これで、Nginx公式リポジトリがUbuntu16.04に追加されました。

3Nginxソースパッケージをダウンロード

nginxを作成します Nginxソースを保存するホームディレクトリの下のディレクトリを作成し、そのディレクトリにcdします。

mkdir ~/nginx && cd ~/nginx

dpkg-devをインストールします 次のコマンドでNginxソースパッケージをダウンロードします:

sudo apt install dpkg-dev
sudo apt source nginx

ダウンロードしたファイルを確認してください。

ls ~/nginx/

出力:

nginx-1.11.1                               nginx_1.11.1-1~xenial.dsc
nginx_1.11.1-1~xenial.debian.tar.xz        nginx_1.11.1.orig.tar.gz

4。 ngx_pagespeedソースパッケージをダウンロード

ngx_pagespeedモジュールを使用してNginxをコンパイルするには、ngx_pagespeedソースパッケージも必要です。 Githubngx_pagespeedダウンロードページに移動します。 (https://github.com/pagespeed/ngx_pagespeed/releases )最新のベータリリースをホームディレクトリにダウンロードします。

v1.11.33.2-この執筆時点でのベータ版。バージョン番号の変更が必要になる場合があります。

cd ~

wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.11.33.2-beta

解凍します:

sudo apt-get install unzip

unzip v1.11.33.2-beta

新しく作成されたディレクトリにcdします:

cd ngx_pagespeed-1.11.33.2-beta/

また、psolライブラリをダウンロードする必要があります。 (PageSpeed最適化ライブラリ)そしてそれを抽出します。バージョン番号は、ページ速度のバージョン番号に対応しています。

wget https://dl.google.com/dl/page-speed/psol/1.11.33.2.tar.gz

tar xvf 1.11.33.2.tar.gz

psolを作成します ngx_pagespeed-1.11.33.2-betaの下のディレクトリ ディレクトリとそれが必要な場所です。

5。 ngx_pagespeedモジュールをNginxコンパイルルールに追加

Nginxコンパイルルールファイルを編集します。

sudo nano ~/nginx/nginx-1.11.1/debian/rules

COMMON_CONFIGURE_ARGSの最後に セクションに、次の行を追加します。 usernameを置き換えます 実際のユーザー名で。この行は、ngx_pagespeedモジュールの場所を指定します。

--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta

このチュートリアルでは、ngx_pagespeedのソースページをホームディレクトリにダウンロードします。 rootアカウントを使用する場合は、/home/usernameを置き換えます /rootを使用 。 rootユーザーのホームディレクトリは/rootであるため 。

また、--with-ld-optに円記号を追加する必要があることに注意してください。 下のスクリーンショットのような行。そうでない場合は、 –add-module 追加した行は、Nginxのコンパイル時に無視されます。

次に、ファイルを保存して閉じます。

6。コンパイルを開始します!

Nginxソースディレクトリにいることを確認してください。

cd ~/nginx/nginx-1.11.1/

Nginxdebパッケージをビルドするために必要なすべての依存関係をインストールします。

sudo apt build-dep nginx

次のコマンドを使用して、debパッケージをビルドします。

sudo dpkg-buildpackage -b

コーヒーを飲み、数分待ちます。シングルコアOpenVZVPSでは、このビルドプロセスには約20分かかりました。完了すると、〜/ nginx /に7つのdebファイルが作成されます ディレクトリ。 nginx_1.11.1-1~xenial_amd64.debをインストールするだけで済みます またはnginx_1.11.1-1~xenial_i386.deb パッケージ、OSアーキテクチャによって異なります。その他は、Nginx動的モジュールパッケージとデバッグパッケージです。必要に応じてインストールすることもできます。

以前にNginxをインストールしたことがある場合は、古いバージョンを削除してから新しいバージョンをインストールします。

sudo apt remove nginx nginx-common nginx-full

cd ~/nginx

sudo dpkg -i nginx_1.11.1-1~xenial_amd64.deb

または

sudo dpkg -i nginx_1.11.1-1~xenial_i386.deb

それでは、Nginxを起動しましょう。

sudo systemctl start nginx

次のエラーメッセージが表示された場合。

Failed to start nginx.service: Unit nginx.service is masked.

次に、nginxのマスクを解除し、startコマンドを再度発行します。

sudo systemctl unmask nginx

Nginxプロセスはユーザーnginxとして実行される可能性があることに注意してください またはwww-data 。これは、/etc/nginx/nginx.confの最初の行を編集することで変更できます。 ファイル。 NginxがPHP-FPMと同じユーザーとして実行されていることを確認してください。

次に、Nginxの構成引数を確認します。

sudo nginx -V

最後に次の行が表示されている場合は、ngx_pagespeedモジュールがNginxに正常に追加されています。

--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta

7。 ngx_pagespeedモジュールを有効にする

PageSpeedはNginxと一緒にインストールされますが、デフォルトでは無効になっています。有効にする前に、pingdom.comまたはwebpagetest.orgでWebサイトの速度をテストすることをお勧めします。ページサイズ、リクエスト数、ページ読み込み時間などに注意してください。PageSpeedを有効にした後、2つの結果を比較するために、もう一度テストを実行してください。

ページスピードキャッシュ用のフォルダーを作成し、その所有権をNginxユーザー(www-dataまたはnginx)に変更して、Nginxで書き込めるようにします。

sudo mkdir -p /var/ngx_pagespeed_cache

sudo chown -R www-data:www-data /var/ngx_pagespeed_cache

次に、Nginxサーバーブロック構成ファイルを編集します。

sudo nano /etc/nginx/conf.d/your-domain.conf

サーバーセクションに次のpagespeedディレクティブを追加します。

# enable pagespeed module on this server block
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$" { }

pagespeed RewriteLevel CoreFilters;

1台のサーバーで複数のWebサイトをホストする場合は、上記のpagespeedディレクティブを各サーバーブロック構成ファイルに追加して、それぞれでpagespeedを有効にします。

最後のディレクティブセットCoreFilters 書き換えレベルとして。 PageSpeedは3つの書き換えレベルを提供します:CoreFilterPassThrough およびOptimizeForBandwidthCoreFilter ほとんどのWebサイトで安全と見なされるフィルターが含まれているため、これがデフォルトです。

CoreFilter 次のフィルターが含まれています。

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

サーバーブロック構成ファイルを保存して閉じます。次に、Nginxをリロードします。

sudo systemctl reload nginx

8。 PageSpeedが機能しているかどうかを確認します

あなたのウェブサイトに行きます。数回更新してから、ページのソースを確認してください。 Ctrl + Fを押します キーを押してpagespeedを検索します 。 Webサイトリソースの多くがpagespeedによって処理されていることがわかります。一部のcssファイルとjavascriptファイルは1つのファイルに結合されます。 Google Chromeブラウザを使用している場合は、ウェブサイトの写真が webpに変換されていることがわかります。 フォーマット。 webpは画像ファイルのサイズを大幅に減らすことができます。

ウェブサイトの速度テストを比較すると、ngx_pagespeedが機能していることもわかります。

また、サーバー上で次のコマンドを発行できます:

curl -I -p http://your-domain.com| grep X-Page-Speed

X-Page-Speedとそのバージョン番号が表示されます。

X-Page-Speed: 1.11.33.2-7423

9。 Nginxがアップグレードされないようにする

新しいバージョンのNginxがリポジトリで利用できる場合は、apt-getアップグレード コマンドはデフォルトでNginxをアップグレードし、ngx_pagespeedモジュールはなくなります。したがって、Nginxがアップグレードされないようにする必要があります。これは、次のコマンドで実行できます。

sudo apt-mark hold nginx

保持されているパッケージを表示するには:

apt-mark showhold

CoreFiltersにないNginxサーバーブロック構成ファイルに追加したいいくつかのpagespeedディレクティブ。

pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters lazyload_images;
pagespeed EnableFilters insert_dns_prefetch;

サーバーブロックの構成ファイルを変更した後は、Nginxをリロードすることを忘れないでください。

各フィルターの詳細な説明については、GooglePageSpeedFilterページにアクセスしてください。

コメント、質問、提案はいつでも歓迎します。この投稿が役に立ったと思ったら、🙂ソーシャルメディアで友達と共有してください!その他のLinuxチュートリアルにご期待ください。


Ubuntu
  1. CentOS7にngx_pagespeedを使用してNginxをインストールします

  2. Ubuntu20.04LTSにNginxを使用してModsecurityをデプロイする

  3. Ubuntu20.04でLetsencryptを使用してNginxを保護する方法

  1. Ubuntu 20.04:NginxがインストールされたWordPress

  2. Ubuntu18.04にNginxでWordPressをインストールする方法

  3. Ubuntu16.04にNginxを使用してPHP7.1をインストールします

  1. Ubuntu18.04にNginxを使用してphpMyAdminをインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu15.10にNginxを使用してMagentoをインストールする方法