最新的 Nginx 安装 ngx_pagespeed 教程

前言

像 WP 的 W3TC 插件,除了缓存功能外,还有 js、css 的优化功能,但与其通过 PHP 到 WordPress 再到插件还不如直接在 Web 服务器阶段就完成对 js、css 还有图片的处理,这里就介绍一下神器 PageSpeed。

目前谷歌官方有维护 对应 Apache Httpd 的 mod_pagespeed 和 对应 Nginx 的 ngx_pagespeed,也有非官方的,例如 LiteSpeed 团队就有根据 ngx_pagespeed 开发对应 LS 的 pagespeed。

这里我们讲 ngx_pagespeed

介绍

ngx_pagespeed 可以自动优化网页和关联资源(CSS,JavaScript,图片),缩短网页的加载时间,而无需修改现有内容或工作流程,实现加快网站的的速度。

主要特性:

图像优化:剥离元数据、动态调整,重新压缩 CSS和JavaScript压缩、合并、级联、内联 小资源内联 推迟图像和JavaScript加载 对HTML重写、压缩空格、去除注释等 提升缓存周期 更多

此页面 可以查看一些重点功能的优化先后表现

安装

需求: gcc ≥ 4.8 或 clang ≥ 3.3

依赖

RedHat/CentOS/Fedora:

yum install gcc-c++ pcre-devel zlib-devel make unzip

Ubuntu/Debian:

apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

下载

cd /root
wget https://github.com/pagespeed/ngx_pagespeed/archive/v[PageSpeed版本]-beta.zip
unzip v[PageSpeed版本]-beta.zip
cd ngx_pagespeed-[PageSpeed版本]-beta/
wget https://dl.google.com/dl/page-speed/psol/[PageSpeed版本]-x[系统位数].tar.gz
tar -xzvf [PageSpeed版本]-x[系统位数].tar.gz

例如:

cd /root
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-beta.zip
unzip v1.12.34.2-beta.zip
cd ngx_pagespeed-1.12.34.2-beta/
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xzvf 1.12.34.2-x64.tar.gz

安装

在原 Nginx 的编译基础上,加入 --add-module=/root/ngx_pagespeed-[PageSpeed版本]-beta

例如,我的 Nginx 本来是:

root@MF8.biz:~# nginx -V
nginx version: nginx/1.11.10
built by gcc 4.9.2 (Debian 4.9.2-10) 
built with OpenSSL 1.1.0e  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-openssl=../openssl-1.1.0e --with-ld-opt=-ljemalloc --add-module=../nginx-ct-1.3.2 --add-module=../ngx_brotli_module-7df1e38 --add-module=../ngx_cache_purge-2.3

加入 --add-module=/root/ngx_pagespeed-1.12.34.2-beta 编译后,即:

root@MF8.biz:~# nginx -V
nginx version: nginx/1.11.10
built by gcc 4.9.2 (Debian 4.9.2-10) 
built with OpenSSL 1.1.0e  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-openssl=../openssl-1.1.0e --with-ld-opt=-ljemalloc --add-module=../nginx-ct-1.3.2 --add-module=../ngx_brotli_module-7df1e38 --add-module=../ngx_cache_purge-2.3 --add-module=/root/ngx_pagespeed-1.12.34.2-beta

Oneinstack 安装 PageSpeed

介绍一个主流的一键包如何安装 PageSpeed 吧。

一、查看 Nginx -V,记录 configure arguments

例如,我的是:

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-ljemalloc

二、修改 oneinstack/include/upgrade_web.sh

三、以 Nginx 为例,其他两个差不多

找到:

./configure $nginx_configure_arguments

configure $nginx_configure_arguments 改为 Nginx -V 的内容,+ --add-module=/root/ngx_pagespeed-1.12.34.2-beta

例如:

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-ljemalloc --add-module=/root/ngx_pagespeed-1.12.34.2-beta

四、然后就按升级 Nginx 的流程升级一下就万事大吉了~

4 条评论

发表评论

  • 請問米大,用了這個是不是就不需要 W3TC、wp rocket 之類插件的壓縮功能了?還是該連插件都一起不要了?

    • pagespeed对应的是压缩功能,还有一篇 cache 的是缓存功能。如果你把插件的功能都替换了,就可以整个插件都不要了

      • 參照這篇和「最新的 Nginx 设置 ngx_pagespeed 教程」這篇的設置弄好了,發現網站真的變得比之前用插件還快不少。謝謝米大的實用教學!!!