ngx_pagespeed 是 Nginx 的一个扩展模块,主要的功能是针对前端页面而进行服务器端的优化,对前端设计人员来说,可以省去优化css、js以及图片的过程。ngx_pagespeed对nginx自身负载能力的提升基本是看不到的,甚至会因为进行服务器端的优化而使系统增加负载;但从减少客户请求数的角度去看,牺牲部分服务器性能还是值得的。
ngx_pagespeed模块的主要功能如下:
- 图像优化:剥离元数据、动态调整,重新压缩
- CSS和JavaScript压缩、合并、级联、内联
- 小资源内联
- 推迟图像和JavaScript加载
- 对HTML重写、压缩空格、去除注释等
- 提升缓存周期
这次安装教程是在系统为 CentOS7.2 64位 下实践的。
新的系统或者是低版本的系统需要安装或升级ngx_pagespeed所需的依赖:
RedHat, CentOS, or Fedora
sudo yum install gcc-c++ pcre-devel zlib-devel make unzip
Ubuntu or Debian
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
如果已经安装了则需要更新依赖(要求 gcc ≥ 4.8 or clang ≥ 3.3)
官方依赖相关的说明与教程:here
因为我想求稳,所以接下来的配置所需的软件都是11月12日前的最新的稳定版。
下载各种软件
下载ngx_pagespeed
cd /usr/local/src
wget https://github.com/pagespeed/ngx_pagespeed/archive/latest-stable.tar.gz
tar -xvzf latest-stable.tar.gz
mv ngx_pagespeed-latest-stable ngx_pagespeed
cd ngx_pagespeed
wget https://dl.google.com/dl/page-speed/psol/1.11.33.4.tar.gz
tar -xzvf 1.11.33.4.tar.gz && rm -rf 1.11.33.4.tar.gz
./scripts/pagespeed_libraries_generator.sh > /usr/local/nginx/conf/pagespeed_libraries.conf
下载nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar -xvzf nginx-1.10.2.tar.gz && rm -rf nginx-1.10.2.tar.gz
下载OpenSSL
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
tar -xzvf openssl-1.0.2-latest.tar.gz && rm -rf openssl-1.0.2-latest.tar.gz
查看latest版本号
ls
openssl-1.0.2j
下载PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -xzvf pcre-8.39.tar.gz && rm -rf pcre-8.39.tar.gz
安装ngx_pagespeed
获取arguments
nginx -V
--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-http_mp4_module --with-openssl=../openssl-1.0.2j --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc
重新整理所需的软件
openssl的目录位置:
/usr/local/src/openssl-1.0.2j
pcre的目录位置:
/usr/local/src/pcre-8.39
ngx_pagespeed的位置目录:
/usr/local/src/ngx_pagespeed
整理新的arguments
根据获取到的configure arguments和上面软件的位置,重新整理configure arguments
然后再加上--add-module=/usr/local/src/ngx_pagespeed
整理后的结果为:
--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-http_mp4_module --with-openssl=/usr/local/src/openssl-1.0.2j --with-pcre=/usr/local/src/pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=/usr/local/src/ngx_pagespeed
开始安装
这里选择重新安装和编译
cd /usr/local/src/nginx-1.10.2
./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-http_mp4_module --with-openssl=/usr/local/src/openssl-1.0.2j --with-pcre=/usr/local/src/pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=/usr/local/src/ngx_pagespeed
make && make install
检查是否安装正常
nginx -V
nginx version: nginx/1.10.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.2j 26 Sep 2016
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-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=/usr/local/src/openssl-1.0.2j --with-pcre=/usr/local/src/pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=/usr/local/src/ngx_pagespeed
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Ok,至此ngx_pagespeed的安装完毕,至于怎么配置使用下一篇再说吧。
本文由 Chakhsu Lau 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
已成功应用,很多页面 PageSpeed 评分都打到了100,很赞!
回访,回访,恩
可以可以,我也回访了 :)
也许https://blog.linuxeye.com/318.html更详细点。既然用OneinStack,帮你把这个链接贴上吧。
其实最不详细的就是这种baidu一堆的13年的教程。/逃
下载psol并解压到ngx_pagespeed子目录后还是编译出错().... 系统是 Centos 6-x86_x64-minimal。
...
./configure: error: module ngx_pagespeed requires the pagespeed optimization library.
需要升级一下 GCC
相关问题:github.com/pagespeed/ngx_pagespeed/issues/327
...vps上编译gcc的时候提示内存不足(512M的机器),还不支持手动扩展 swap
GCC根本不需要编译。。。直接添加devtoolset的RPM源,然后YUM安装就是了,目前devtoolset-4是最新的,GCC版本为5.2.1,已经足够几乎所有的程序使用了
没办法了,慢慢来。
看着这套皮感觉不错,扒到wordpress去了,哈哈
兄弟,很强势哟!