一、自动安装

使用最新稳定版本的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. C# 通用单例窗体类

    /// <summary> /// 通用的单例制作器 /// </summary> /// <typeparam name="T"></t ...

  2. quartz定时任务cron表达式

    cron 表达式格式:秒 分 时 日 月 周 年(可选) 子表达式范围 字段名 字段解释 值范围 特殊字符 Seconds 秒 0~59 , - * / Minutes 分 0~59 , - * / ...

  3. MySQL Error Number 1005 Can’t create table(Errno:150)

    mysql数据库1005错误解决方法 MySQL Error Number 1005 Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150) ...

  4. Unity切换到安卓平台Shader丢失(opengl)

    Unity安卓平台shader平台丢失 Unity的工程切换到Android平台后,运行游戏出现shader丢失 解决办法:在Unity桌面图标的快捷方式后添加 -force-gles20 示例:&q ...

  5. windows常用目录

    启动目录位置 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  6. windowsServer部署站点

    ### windowsServer部署站点 前言:最近在和朋友一起买了个服务器,奈何他选的是windowsServer,无所谓了,就把自己的站点从之前的虚拟主机迁过来,记录下. 准备工作: 服务器上搭 ...

  7. 基于gdal的格网插值

    格网插值就是使用离散的数据点创建一个栅格图像的过程.通常情况下,有一系列研究区域的离散点,如果我们想将这些点转换为规则的网格数据来进行进一步的处理,或者和其他网格数据进行合并 等处理,就需要使用格网插 ...

  8. Docker: Jenkins里的pipeline编写基本技巧

    Jenkins里,先新建一个pipeline项目 Pipeline Syntax 在Sample Step里选择需要的插件,如果不存在,就去系统管理,插件管理里,进行安装. 如果源码管理工具用的是gi ...

  9. 深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的

    前言 几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的.当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后 ...

  10. WinForms 快速开发的工具类。

    下面是我本人在 WinForms 开发中积累的一些心得. 1. 在父窗体中打开子窗体 直接贴代码: private void btnCompare_Click(object sender, Event ...