【页面加速】配置Nginx加载ngx_pagespeed模块,加快网站打开的速度

 

ngx_pagespeed 是一个 Nginx 的扩展模块,可以加速你的网站,减少页面加载时间,它会自动将一些提升web性能的实践应用到网页和相关的资源(CSS、JS和图片)上,无需你修改内容和流程。

功能包括:
图片优化: stripping meta-data, dynamic resizing, recompression
CSS & JavaScript 压缩、合并等
小资源的内联
推迟图片和 JS 的加载
HTML 重写
延长缓存扩展

-----------------------------------------------

系统环境: CentOS6.3 x64
NGINX: nginx-1.4.1
pagespeed: ngx_pagespeed-1.6.29.5

一.部署环境:
1.关闭iptables和SELINUX
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------

2.安装依赖包
# yum install gcc-c++ pcre-devel zlib-devel zip wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*

3.同步时间
# ntpdate asia.pool.ntp.org

二.安装ngx_pagespeed
1.配置ngx_pagespeed
# wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.6.29.5-beta.zip
# unzip release-1.6.29.5-beta.zip 
# cd ngx_pagespeed-release-1.6.29.5-beta/

2.配置psol模块
# wget https://dl.google.com/dl/page-speed/psol/1.6.29.5.tar.gz
# tar -xzvf 1.6.29.5.tar.gz

三.安装nginx
1.安装前的配置
先添加nginx用户和用户组
# groupadd nginx
# useradd -g nginx -s /bin/false -M nginx

2.解压编译源码包,这里采用最新的源码包1.4.1
# wget http://nginx.org/download/nginx-1.4.1.tar.gz
# tar -xvzf nginx-1.4.1.tar.gz
# cd nginx-1.4.1/
# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-debug --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --add-module=$HOME/ngx_pagespeed-release-1.6.29.5-beta

注:--add-module=$HOME/ngx_pagespeed-release-1.6.29.5-beta为编译时加载ngx_pagespeed模块
这将使用二进制PageSpeed优化库,但它也有可能建立从源PSOL
ngx_pagespeed目前不支持Windows或MacOS因为不底层PSOL库。

# make && make install

创建缓存目录
# mkdir -p /var/tmp/nginx/client

3.创建启动脚本
# vi /etc/init.d/nginx
-------------------------------

#!/bin/bash
NGINX=/usr/local/nginx/sbin/nginx
PID=/usr/local/nginx/logs/nginx.pid
start()
{
if [ -f $PID ]
then
echo "nginx已经启动!"
else
$NGINX
echo "nginx启动成功!"
fi
}
stop()
{
if [ -f $PID ]
then
killall -s QUIT nginx
echo "nginx已经关闭!"
else
echo "nginx未启动!"
fi
}
restart()
{
if [ -f $PID ]
then
stop
fi
start
}
case $1 in
"start") start
;;
"stop") stop
;;
"restart") restart
;;
*) echo "请输入正确的操作参数start|stop|restart"
;;
esac

----------------------------------------------------------------------------------

# chmod 755 /etc/init.d/nginx
# chkconfig --add nginx
# service nginx start
# chkconfig nginx on

Nginx加载ngx_pagespeed模块,加快网站打开的速度的更多相关文章

  1. 【页面加速】配置Nginx加载ngx_pagespeed模块,加快网站打开的速度

    ngx_pagespeed 是一个 Nginx 的扩展模块,可以加速你的网站,减少页面加载时间,它会自动将一些提升web性能的实践应用到网页和相关的资源(CSS.JS和图片)上,无需你修改内容和流程. ...

  2. NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)

    NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展.目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块. tinywan@tinyw ...

  3. archlinux 加载loop模块,且设定loop设备个数

    如果loop模块没有编译进内核就要先加载loop模块 modprobe loop 然后更改/etc/modprobe.d/modprobe.conf(有些文章写是在/etc/modprobe.conf ...

  4. Angular.JS + Require.JS + angular-async-loader 来实现异步加载 angular 模块

    传统的 angular 应用不支持异步加载模块,必须在 module 启动的时候,所有模块必须预加载进来. 通过使用 angular-async-loader 库,我们可以使用 requirejs 等 ...

  5. Linux内核源码树建立加载hello模块

    在加载模块之前,书中说要先建立内核源码树,那么,如何建立内核源码树呢? 首先,要先知道你的OS的内核版本,用uname -r可以查得到 在/url/src/目录下可以看到对应的版本目录 如果没有可以用 ...

  6. [tp3.2.1]让默认页面: 加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器.

    QQ:让index.php默认加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器.AA:复制index.php命名为admin.php复制(新建)A ...

  7. 列出当前ARM开发板系统加载的模块

    lsmod 列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,第三列则是使用该模块的对象数目

  8. PHP无法加载MySQL模块

                在 将PHP根目录下libmysql.dll复制到c:\Windows\system32中 在Apache目录中的conf\httpd.conf 中加载libmysql.dll ...

  9. 给Apache加载rewrite模块后,服务器返回500错误,以及a2enmod命令

    我的机子是Ubuntu. 今天想给url做一个rewrite,让url看起来更漂亮一点.在Apache配置文件(我的是 /etc/apache/apache2.conf)文件中已经把AllOverri ...

随机推荐

  1. css中display:inline-block display:-moz-inline-box display:-moz-inline-stack 的区别

    很多时候我们必须使一些块元素并排显示,一般想到的是必须使用浮动,但是块元素浮动给边距(margin)的时候在IE下会出现加倍的BUG,所以很多时候不得不把这个块元素套在一个内联元素里面,然后给内联元素 ...

  2. 在windows下用nvm 安装node

    nvm 可以帮助切换node版本 在此文中,会特意指明一些坑,防止再次踩坑.第一个坑就是,如果你已经单独安装了node,建议先卸载,再来看本文. 1. nvm 下载 nvm 的下载地址:https:/ ...

  3. [administrative][qemu][kvm] qemu使用--bridge-helper

    公司服务器,源码安装的 qemu-2.9.0. 不是yum装的. 问题1:非超级用户的kvm权限问题: 略,直接超级用户使用. 也许有用? https://access.redhat.com/docu ...

  4. 加载properties文件的三种方法

    源代码: package a.one; import java.io.FileInputStream; import java.io.InputStream; import java.util.Pro ...

  5. ipv6的校验格式

    ipv6的校验格式: ^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

  6. 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制

    Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能.虚拟机执行引擎执行的对象是方法(均特指非本地 ...

  7. 文件批量scp分发脚本

    #!/bin/bash SERVERS="172.17.xx.y 172.17.pp.mm" PASSWORD=机器登录密码 auto_ssh_copy_file() { expe ...

  8. Linux dmidecode 命令

    当我们需要获取机器硬件信息时,可使用linux系统自带的dmidecode工具进行查询. dmidecode 用于获取服务器的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息 这 ...

  9. SSAS下玩转PowerShell

     操作SSAS数据库的方法有非常多,是否有一种能够方法能够通过脚本自己主动去做这些事呢,比方处理分区,创建备份以及监视SSAS的执行状况.   原文地址: http://www.mssqltips ...

  10. sqlserver2008出现数据库主体在该数据库中拥有架构,无法删除的解决方案

    当要删除数据库中的某个用户名的时候会报错 出现数据库主体在该数据库中拥有架构,无法删除的解决方案(MicrosoftSQLServer,错误:15138) 和sql server2000不同 第一:这 ...