够用的ngx_pagespeed安装教程

in Tutorials with 12 comments

ngx_pagespeed 是 Nginx 的一个扩展模块,主要的功能是针对前端页面而进行服务器端的优化,对前端设计人员来说,可以省去优化css、js以及图片的过程。ngx_pagespeed对nginx自身负载能力的提升基本是看不到的,甚至会因为进行服务器端的优化而使系统增加负载;但从减少客户请求数的角度去看,牺牲部分服务器性能还是值得的。

ngx_pagespeed模块的主要功能如下:

这次安装教程是在系统为 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的安装完毕,至于怎么配置使用下一篇再说吧。

Responses
  1. 已成功应用,很多页面 PageSpeed 评分都打到了100,很赞!

    Reply
  2. 回访,回访,恩

    Reply
    1. @timem

      可以可以,我也回访了 :)

      Reply
  3. 也许https://blog.linuxeye.com/318.html更详细点。既然用OneinStack,帮你把这个链接贴上吧。

    Reply
    1. @Orso

      其实最不详细的就是这种baidu一堆的13年的教程。/逃

      Reply
  4. 下载psol并解压到ngx_pagespeed子目录后还是编译出错().... 系统是 Centos 6-x86_x64-minimal。
    ...
    ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.

    Reply
    1. @kkou

      需要升级一下 GCC

      相关问题:github.com/pagespeed/ngx_pagespeed/issues/327

      Reply
      1. @Chakhsu Lau

        ...vps上编译gcc的时候提示内存不足(512M的机器),还不支持手动扩展 swap

        Reply
        1. ZeroClover
          @kkou

          GCC根本不需要编译。。。直接添加devtoolset的RPM源,然后YUM安装就是了,目前devtoolset-4是最新的,GCC版本为5.2.1,已经足够几乎所有的程序使用了

          Reply
        2. @kkou

          没办法了,慢慢来。

          Reply
  5. 看着这套皮感觉不错,扒到wordpress去了,哈哈

    Reply
    1. @Program Say

      兄弟,很强势哟!

      Reply