前言
像 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 本来是:
[email protected]:~# 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
编译后,即:
[email protected]:~# 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 的流程升级一下就万事大吉了~
請問米大,用了這個是不是就不需要 W3TC、wp rocket 之類插件的壓縮功能了?還是該連插件都一起不要了?
pagespeed对应的是压缩功能,还有一篇 cache 的是缓存功能。如果你把插件的功能都替换了,就可以整个插件都不要了
參照這篇和「最新的 Nginx 设置 ngx_pagespeed 教程」這篇的設置弄好了,發現網站真的變得比之前用插件還快不少。謝謝米大的實用教學!!!
客气客气。