一、自动安装

使用最新稳定版本的ngx_pagespeed自动安装依赖项并构建最新的主线版nginx,请运行:

$ sudo bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version latest

二、手动安装

1.安装依赖

$ sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev libxslt-dev libgd-dev libgeoip-dev openssl libssl-dev libperl-dev

2.下载ngx_pagespeed

$ NPS_VERSION=1.13.35.2-stable  #版本号可以自选,官方提供的版本(https://www.modpagespeed.com/doc/release_notes)
$ cd
$ wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
$ unzip v${NPS_VERSION}.zip
$ nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
$ cd "$nps_dir"
$ NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
$ NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
$ psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
$ [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
$ wget ${psol_url}
$ tar -xzvf $(basename ${psol_url})

3. 下载nginx

$ NGINX_VERSION=1.14.0  #如果是在已安装nginx基础之上build,nginx版本需要和当前使用版本一致
$ cd
$ wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
$ tar -xvzf nginx-${NGINX_VERSION}.tar.gz
$ cd nginx-${NGINX_VERSION}/ $ NGINX_BIN='/usr/sbin/nginx'
$ NGINX_BUILD_CONF=`$NGINX_BIN -V >& >/dev/null | grep 'configure' --color | awk -F':' '{print $2;}'`
$ NGINX_BUILD_CONF="$NGINX_BUILD_CONF --add-dynamic-module=/home/ubuntu/incubator-pagespeed-ngx-1.13.35.2-stable"

如果本机已安装了nginx,在已有的基础上安装,则需要执行以下操作:

  $ vi configure   #默认prefix路径是/usr/local/nginx,可以修改为自己当前的nginx路径再编译,否则无法匹配so文件

  通过nginx -V 找到configure的参数, 然后在末尾加上--add-dynamic-module=/home/ubuntu/incubator-pagespeed-ngx-1.13.35.2-stable开始编译

  直接使用$NGINX_BUILD_CONF 变量会有问题,可以先通过nginx -V命令查看当前的编译变量,以下是自己使用的编译变量,请根据自己需要修改:
  ./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-FIJPpj/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module --add-dynamic-module=/home/ubuntu/incubator-pagespeed-ngx-1.13.35.2-stable

初始安装:

$ ./configure --add-dynamic-module=/home/ubuntu/incubator-pagespeed-ngx-1.13.35.2-stable

configure执行完毕之后:

$ make
$ sudo make install

3.配置nginx

如果是初始安装nginx,则找到nginx安装路径(默认是在/usr/local/nginx)执行配置pagespeed即可。

如果存在nginx先备份原来的nginx执行文件以便恢复:

$ sudo cp /usr/sbin/nginx /tmp/nginx_bak # 备份旧的nginx文件

4.配置pagespeed

添加以下配置文件到/etc/nginx/nginx.conf文件中

load_module /usr/lib/nginx/modules/ngx_pagespeed.so;

http{
......
  pagespeed on;
  pagespeed FileCachePath /var/cache/ngx_pagespeed/;
...... include /etc/nginx/ngx_pagespeed.conf;
}

创建pagespeed缓存目录
$ sudo mkdir /var/cache/ngx_pagespeed/
$ sudo chown root:root /var/cache/ngx_pagespeed/

创建pagespeed配置文件
$ sudo vi /etc/nginx/ngx_pagespeed.conf

#根据自己业务需要配置相关特性
pagespeed RewriteLevel PassThrough;
pagespeed FetchHttps enable;
pagespeed EnableFilters prioritize_critical_css;
pagespeed EnableFilters combine_javascript;
pagespeed EnableFilters combine_css;
pagespeed EnableFilters flatten_css_imports;
pagespeed EnableFilters insert_dns_prefetch;
pagespeed EnableFilters convert_jpeg_to_webp;
pagespeed EnableFilters convert_to_webp_lossless;
pagespeed EnableFilters convert_to_webp_animated;
pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters rewrite_images;
pagespeed EnableFilters resize_rendered_image_dimensions;
pagespeed EnableFilters rewrite_javascript;
pagespeed EnableFilters move_css_to_head;
pagespeed EnableFilters defer_javascript; pagespeed EnableFilters inline_images;
pagespeed EnableFilters recompress_images; pagespeed EnableFilters rewrite_domains;
pagespeed DomainRewriteHyperlinks on;

将新生成的nginx文件拷贝到执行目录
$ cd /usr/share/nginx/sbin/       #初始化安装不必执行此条命令
$ sudo cp -f nginx /usr/sbin/nginx    #初始化安装不必执行此条命令
$ sudo nginx -t
$ sudo nginx -s reload

ubuntu安装nginx pagespeed的更多相关文章

  1. ubuntu安装nginx踩坑

    ubuntu安装nginx 安装nginx tar -zxvf nginx-1.15.5.tar.gz -C /usr/local/src 解压 cd /usr/local/src/nginx-1.1 ...

  2. ubuntu安装nginx时提示error: the HTTP rewrite module requires the PCRE library

    ubuntu安装nginx时提示error: the HTTP rewrite module requires the PCRE library 须要安装pcre包. sudo apt-get upd ...

  3. Ubuntu安装Nginx+PHP7.0.4+MySQL5.6

    安装Nginx 1.首先添加nginx_signing.key(必须,否则出错) $ wget http://nginx.org/keys/nginx_signing.key $ sudo apt-k ...

  4. Ubuntu 安装 Nginx 实现反向代理

    安装Nginx依赖库(ubuntu平台) 最近域名通过了备案, 想着应用总不能带着端口号访问吧, 于是在网上踩了很多坑, 终于找到了一步直达的方法,起码这一次很顺利的实现了 安装gcc g++的依赖库 ...

  5. ubuntu安装nginx和设置网站https访问

    安装nginx 在控制台 输入 sudo apt-get install nginx 等待安装成功之后.可以打开浏览器.输入你的域名或者ip地址会出现"Welcome to nginx!&q ...

  6. ubuntu安装Nginx

    什么都不说了 直接干 一.安装Nginx 首先从Nginx的官网下载最新的稳定版本1.14.0:nginx 1.解压安装包 1.root@ubuntu:tar -zxf nginx-1.14.0.ta ...

  7. ubuntu 安装nginx, 出现 Unable to locate package

    今天在初始化一台新的ubuntu 服务器时,敲上了 sudo apt-get install nginx 来安装nginx, 却发现提示:  Reading package lists... Done ...

  8. ubuntu安装nginx及其默认目录结构

    一. 安装包安装 1.1 安装Nginx $sudo apt-get install nginx Ubuntu安装之后的文件结构大致为: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经 ...

  9. Ubuntu 安装nginx

    https://www.nginx.com/resources/admin-guide/load-balancer/ https://github.com/gplessis/dotdeb-nginx/ ...

随机推荐

  1. 微信小程序 canvas 文字居中

    drawCanvas: function(ctx) { //... // 昵称 ctx.setFontSize(16) //字体大小 ctx.setFillStyle('#fff') //字体颜色 c ...

  2. Android 字体适配方案

    开发过程中,按照UI设计尺寸做好UI页面,当用户自定义自己的手机字体大小之后UI完全没法看了,这个时候就在想让app字体大小始终一致就好了 下面看一下,出现的问题和解决方案     做个简单的例子,先 ...

  3. 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with

    [内容来源自https://www.cnblogs.com/ANCAN-RAY/p/8961832.html] 在svn本地目录更新文件夹时,更新失败. 然后svn提示我,让我cleanup一下,于是 ...

  4. 自学MongoDB(1)

    MongoDB是nosql(非关系型数据库)中的一种,面向文档的数据库,介于传统的结构化数据库(关系型数据库)与非关系型数据库(文件储存)之间的一种,具有数据结构非常松散和非常灵活的特点;常用于存储分 ...

  5. FPGA设计千兆以太网MAC(3)——数据缓存及位宽转换模块设计与验证

    本文设计思想采用明德扬至简设计法.上一篇博文中定制了自定义MAC IP的结构,在用户侧需要位宽转换及数据缓存.本文以TX方向为例,设计并验证发送缓存模块.这里定义该模块可缓存4个最大长度数据包,用户根 ...

  6. C# 得到EXCEL表格中的有效行数和列数

    每种方法中上面的是Excel的行数,下面的是Excel的列数.方法七:经过加工修改已经可以读出来的是有效数据行 using Excel = Microsoft.Office.Interop.Excel ...

  7. 网页验证码出不来,读取验证码时出错:javax.imageio.IIOException: Can't create cache file!

    版权声明:本文为博主原创文章,仅作为学习交流使用 转载请注明出处 https://www.cnblogs.com/linck/p/10593053.html 今天打开项目时,发现登陆界面的验证码出不来 ...

  8. Extjs renderer函数

    昨天提到了改变grid中 行的背景颜色,其实还有一个更简单的方法,就是利用renderer:function(){}函数 renderer 函数是一个拦截者模式,用于改变渲染到单元格的值和样式. re ...

  9. Vue组件之全局组件与局部组件

    1全局注册实例 <div id="app"> <com-btn></com-btn> <com-btn></com-btn&g ...

  10. 是时候选择一款富文本编辑器了(wangEditor)

    需要一款富文本编辑器,当然不能自己造轮子.本来想使用cnblog也在用的TinyMCE,名气大,功能全.但是发现TinyMCE从4.0开始,不再支持直接下载.所以还是决定选用wangEditor.遗憾 ...