PageSpeed Betaは、Apacheのmod_pagespeedに相当するnginxであるnginxで使用できます。このモジュールは、Webパフォーマンスのベストプラクティスをページおよび関連するアセット(CSS、JavaScript、画像)に適用するため、Webサイトを高速化し、読み込み時間を短縮します。このチュートリアルでは、Debian Jessie/testingでnginxでPageSpeedを使用する方法について説明します。
これがあなたのために働くという保証はありません!
1PageSpeedを使用したnginxの構築
nginxはモジュールの動的ロードをサポートしていないため、PageSpeedをサポートして再構築する必要があります。 nginxを.debパッケージとしてビルドし、既存のnginxインストールを置き換えられるようにします(または他のシステムに簡単にインストールできます)。
最初にビルドディレクトリを作成します:
cd / usr / src
mkdir pagespeed &&cd pagespeed
/etc/apt/sources.listにJessie/testingのdeb行とdeb-src行があることを確認してください:
vi /etc/apt/sources.list
[...] deb http://ftp.de.debian.org/debian tests main contrib non-freedeb-src http:// ftp.de.debian.org/debian test main contrib non-free [...] |
パッケージリストを更新し、いくつかの前提条件をインストールします:
apt-get update
apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip unzip curl libcurl4-openssl-dev libossp-uuid-dev
nginxソースとビルドの依存関係をダウンロードします:
apt-get source nginx
apt-get build-dep nginx
nginxのバージョンを確認しましょう:
ls -l </ pre>[メールで保護]:/ usr / src / pagespeed#ls -l <br /> total 2292
drwxr-xr-x 10 root root 4096 Feb 5 12:54 nginx-1.4.4
-rw -r--r-- 1 root root 1568452 Jan 7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r-- 1 root root 2171 Jan 7 19:22 nginx_1 .4.4-4.dsc
-rw-r--r-- 1 root root 768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
[email protected]:/ usr / src / pagespeed#nginxのバージョンは1.4.4です。ダウンロードしたnginxソースのdebian/modulesディレクトリに行きましょう...
cd /usr/src/pagespeed/nginx-1.4.4/debian/modules...そしてPageSpeedソースをダウンロードします(このページで最新リリースを確認できます:https://github.com/pagespeed/ngx_pagespeed/releases-この例では、バージョンは1.7.30.3-betaです。バージョンが異なる場合、このチュートリアルの残りの部分で必ず置き換えてください):
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.7.30.3-beta.zip
>
unzip release-1.7.30.3-beta.zip
cd ngx_pagespeed-release-1.7.30.3 -beta /
wget https://dl.google.com/dl/page-speed/psol/1.7.30.3.tar.gz
tar -xzvf 1.7.30.3.tar.gzdebian / rulesファイルを編集しましょう:
vi /usr/src/pagespeed/nginx-1.4.4/debian/rulesそのファイルには、4つのconfig.statusセクション(config.status.full、config.status.light、config.status.extras、config.status.naxsi)があります。 $(CONFIGURE_OPTS)> [email protected]行の直前に、-add-module =$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta\という行をそれぞれに追加します。例:次のように:
[...] config.status.full:config.env.full cd $(BUILDDIR_full)&&CFLAGS ="$(CFLAGS)" CORE_LINK ="$(LDFLAGS)" ./configure \ --prefix =/ usr / share / nginx \ --conf-path =/ etc / nginx / nginx.conf \ --error-log-path =/ var / log / nginx / error.log \ --http-client-body-temp-path =/ var / lib / nginx / body \ --http-fastcgi-temp-path =/ var / lib / nginx / fastcgi \ --http- log-path =/ var / log / nginx / access.log \ --http-proxy-temp-path =/ var / lib / nginx / proxy \ --http-scgi-temp-path =/ var / lib / nginx / scgi \ --http-uwsgi-temp-path =/ var / lib / nginx / uwsgi \ --lock-path =/var/lock/nginx.lock \ --pid-path =/ run / nginx.pid \ --with-pcre-jit \ --with-debug \ --with-http_addition_module \ --with-http_dav_module \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module \ --with-http_realip_module \ --with-http_spdy_module \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-ipv6 \ --with-mail \- with-mail_ssl_module \ --add-module =$(MODULESDIR)/ nginx-auth-pam \ --add-module =$(MODULESDIR)/ nginx-dav-ext-module \ --add-module =$(MODULESDIR) / nginx-echo \ --add-module =$(MODULESDIR)/ nginx-upstream-fair \ --add-module =$(MODULESDIR)/ ngx_http_substitutions_filter_module \ --add-module =$(MODULESDIR)/ ngx_pagespeed-release- 1.7.30.3-beta \ $(CONFIGURE_OPTS)> [email protected] touch [email protected] [...] |
それでは、新しいnginxパッケージを作成しましょう:
cd /usr/src/pagespeed/nginx-1.4.4/ &&dpkg-buildpackage -b
その後、生成されたパッケージを見てみましょう:
cd / usr / src / pagespeed
ls -l </ P>
[メールで保護]:/ usr / src / pagespeed#ls -l <br /> total 67260
drwxr-xr-x 10 root root 4096 Feb 5 13:18 nginx-1.4.4
-rw -r--r-- 1 root root 67132 Feb 5 13:18 nginx_1.4.4-4_all.deb
-rw-r--r-- 1 root root 4749 Feb 5 13:19 nginx_1.4.4-4_amd64 .changes
-rw-r--r-- 1 root root 1568452 Jan 7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r-- 1 root root 2171 Jan 7 19:22 nginx_1.4.4-4.dsc
-rw-r--r-- 1 root root 768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
- rw-r--r-- 1 root root 79288 Feb 5 13:18 nginx-common_1.4.4-4_all.deb
-rw-r--r-- 1 root root 78448 Feb 5 13:18 nginx- doc_1.4.4-4_all.deb
-rw-r--r-- 1 root root 2520834 Feb 5 13:19 nginx-extras_1.4.4-4_amd64.deb
-rw-r--r- -1 root root 25480472 Feb 5 13:19 nginx-extras-dbg_1.4.4-4_amd64.deb
-rw-r--r-- 1 root root 2372314 Feb 5 13:18 nginx-full_1.4.4-4_amd64 .deb
-rw-r--r-- 1 root root 23850670 Feb 5 13:19 nginx-full-dbg_1.4.4-4_amd64.deb
-rw-r-- r-- 1 root root 2349992 Feb 5 13:19 nginx-light_1.4.4-4_amd64.deb
-rw-r--r-- 1 root root 3416998 Feb 5 13:19 nginx-light-dbg_1.4.4 -4_amd64.deb
-rw-r--r-- 1 root root 2384044 Feb 5 13:19 nginx-naxsi_1.4.4-4_amd64.deb
-rw-r--r-- 1 root root 3581602 Feb 5 13:19 nginx-naxsi-dbg_1.4.4-4_amd64.deb
-rw-r--r-- 1 root root 309478 Feb 513:18nginx-naxsi-ui_1.4.4-4_all。 deb
[メール保護]:/ usr / src / pagespeed#
次のように、PageSpeedをサポートするnginxをインストールできるようになりました。
dpkg --install nginx-common_1.4.4-4_all.deb nginx_1.4.4-4_all.deb nginx-full_1.4.4-4_amd64.deb
/etc/init.d/nginx restart
PageSpeedモジュールが正常に構築されたかどうかを確認しましょう:
nginx -V
出力にngx_pagespeedモジュールが表示されます:
[メールで保護]:/ usr / src / pagespeed#nginx -V
nginxバージョン:nginx / 1.4.4
TLS SNIサポートが有効
引数を設定:-prefix =/ usr / share / nginx --conf-path =/ etc / nginx / nginx.conf --error-log-path =/ var / log / nginx / error.log --http-client-body-temp-path =/ var / lib / nginx / body --http-fastcgi-temp-path =/ var / lib / nginx / fastcgi --http-log-path =/ var / log / nginx / access.log --http-proxy-temp-path =/ var / lib / nginx / proxy --http-scgi-temp-path =/ var / lib / nginx / scgi --http-uwsgi-temp-path =/ var / lib / nginx / uwsgi --lock-path =/var/lock/nginx.lock --pid-path =/ run / nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with -http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_spdy_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-mail --with -mail_ssl_module --add-module =/ usr / src / pagespeed / nginx-1.4.4 / debian / modules / nginx-auth -pam --add-module =/ usr / src / pagespeed / nginx-1.4.4 / debian / modules / nginx-dav-ext-module --add-module =/ usr / src / pagespeed / nginx-1.4.4 / debian / modules / nginx-echo --add-module =/ usr / src / pagespeed / nginx-1.4.4 / debian / modules / nginx-upstream-fair --add-module =/ usr / src / pagespeed / nginx -1.4.4 / debian / modules / ngx_http_substitutions_filter_module --add-module =/ usr / src / pagespeed / nginx-1.4.4 / debian / modules / ngx_pagespeed-release-1.7.30.3-beta
[メール保護] :/ usr / src / pagespeed#
2PageSpeedの構成
PageSpeedを有効にするには、/ etc / nginx / nginx.conf ...
を開きます。vi /etc/nginx/nginx.conf
...そしてページスピードの行を追加します。およびpagespeedFileCachePath/ var / ngx_pagespeed_cache; vhostsの前:
[...] pagespeed on; pagespeed FileCachePath / var / ngx_pagespeed_cache; ###仮想ホスト構成## include /etc/nginx/conf.d/*.conf;インクルード/etc/ nginx / sites-enabled / *; [...] |
キャッシュディレクトリを作成し、nginxをリロードします:
mkdir / var / ngx_pagespeed_cache
chown -R www-data:www-data / var / ngx_pagespeed_cache
/etc/init.d/nginxリロード
ページを読み込んで、PageSpeedが出力に記載されているかどうかを確認しましょう:
curl -I -p http:// localhost | grep X-Page-Speed
[メールで保護]:/ usr / src / pagespeed#curl -I -p http:// localhost | grep X-Page-Speed
%合計%受信%Xferd平均速度時間時間時間現在
アップロード合計使用済み左速度
00 0 0 0 0-:-:--:-:---:-:-ページ0
X速度:1.7.30.3-3721
[メール保護]:/ usr / src / pagespeed#
これで、PageSpeedを個別に構成することも、各仮想ホストを構成することもできます。このように:
vi /etc/nginx/sites-available/example.com.vhost
server {[...]#PageSpeedを超高速のmemcached pagespeed MemcachedThreads 1に保存して、PageSpeedを高速化しましょう。 pagespeed MemcachedServers "localhost:11211"; #フィルター設定pagespeed RewriteLevel CoreFilters; pagespeed EnableFilterscollapse_whitespace、remove_comments; #pagespeedに最適化されたリソースのリクエストがpagespeedハンドラーに送られ、余分なヘッダーが設定されていないことを確認します。 location〜 "\ .pagespeed \。([a-z] \。)?[a-z]{2}\。[^。]{10}\。[^。]+"{add_header "" ""; } location〜 "^ / ngx_pagespeed_static /" {} location〜 "^ / ngx_pagespeed_beacon $" {} location / ngx_pagespeed_statistics {allow 127.0.0.1;すべてを拒否します。 } location / ngx_pagespeed_global_statistics {allow 127.0.0.1;すべてを拒否します。 } location / ngx_pagespeed_message {allow 127.0.0.1;すべてを拒否します。 } location / pagespeed_console {allow 127.0.0.1;すべてを拒否します。 } [...]} |
重要な行は、適用するフィルターをPageSpeedに指示するpagespeedEnableFilters行です。すべてのフィルターのリストはここにあります:http://ngxpagespeed.com/ngx_pagespeed_example/
後でnginxを再起動することを忘れないでください:
/etc/init.d/nginxリロード
ここでページを開いてヘッダーを確認すると(たとえば、FireFoxのLive HTTPヘッダーアドオンを使用して)、x-page-speedの行が表示されます。
ページのHTMLソースをチェックして、PageSpeedフィルターが期待どおりに機能するかどうかを確認できます。
3つのリンク
- Google Developersブログ:http://googledevelopers.blogspot.nl/2013/04/speed-up-your-sites-with-pagespeed-for.html
- ngx_pagespeed:https://developers.google.com/speed/pagespeed/ngx
- PageSpeedの構築/使用:https://github.com/pagespeed/ngx_pagespeed
- ngx_pagespeedフィルターの例:http://ngxpagespeed.com/ngx_pagespeed_example/
FalkoTimmeはの所有者 Timme Hosting(超高速nginx Webホスティング)。彼はHowtoForge(2005年以降)の主任メンテナーであり、ISPConfig(2000年以降)のコア開発者の1人です。彼はまた、O'Reillyの本「LinuxSystemAdministration」にも寄稿しています。