开发者社区> 问答> 正文

或许是 2017年 最新的 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/
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 的流程升级一下就万事大吉了~

展开
收起
妙正灰 2017-05-09 13:46:10 5242 0
2 条回答
写回答
取消 提交回答
  • 应该配置网站的DEFAULT信息吧
    2017-06-15 07:28:46
    赞同 展开评论 打赏
  • Re或许是 2017年 最新的 ngxpagespeed 安装姿势
    安装好就行了?不用配置什么吗?
    2017-06-15 05:20:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载