Nginx安装配置PageSpeed模块实现网站加速

   作为Nginx组件,ngx_pagespeed将重写你的网页,让用户以更快的速度进行访问。重写的工作包括压缩图片、缩减CSS和JavaScript、扩展缓存时间,同样还包括其它一些最佳实践:

  优化缓存——整合应用程序的数据和逻辑

  最小化round-trip次数——削减连续的请求/响应周期数

  最小化请求开销——削减上传大小

  最小化负载大小——削减响应、下载及缓存页面大小

  优化浏览器渲染——改善浏览器页面布局

  移动方面的优化——优化站点移动网络和设备方面的相关特性

  下载解压PageSpeed模块

  cd /root/lnmp/src

  wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.6.29.5-beta.zip

  unzip -q release-1.6.29.5-beta

  wget https://dl.google.com/dl/page-speed/psol/1.6.29.5.tar.gz

  tar xzf 1.6.29.5.tar.gz -C ngx_pagespeed-release-1.6.29.5-beta

  查看线上版本编译参数

  # /usr/local/nginx/sbin/nginx -V

  nginx version: nginx/1.4.1

  built by gcc 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)

  TLS SNI support enabled

  configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

  增加ngx_pagespeed模块重新编译

  # wget http://nginx.org/download/nginx-1.4.2.tar.gz

  # tar -xvzf nginx-1.4.2.tar.gz

  # cd nginx-1.4.2/

  # ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_pagespeed-release-1.6.29.5-beta/

  # make //注意只make 不要make install (如果报错请看下面)

  安装ngx_pagespeed (make) 32位操作系统可能会报如下错误

  ../ngx_pagespeed-release-1.6.29.5-beta/psol/lib/Release/linux/ia32/pagespeed_automatic.a(104.system.o.o): In function `cv::tempfile(char const*)':

  system.cpp:(.text._ZN2cv8tempfileEPKc+0x1e): warning: the use of `tmpnam' is dangerous, better use `mkstemp'

  objs/addon/src/ngx_base_fetch.o: In function `net_instaweb::NgxBaseFetch::DecrefAndDeleteIfUnreferenced()':

  /root/lnmp/src/nginx-1.4.2/../ngx_pagespeed-release-1.6.29.5-beta/src/ngx_base_fetch.cc:185: undefined reference to `__sync_add_and_fetch_4'

  collect2: ld returned 1 exit status

  make[1]: *** [objs/nginx] Error 1

  make[1]: Leaving directory `/root/lnmp/src/nginx-1.4.2'

  make: *** [build] Error 2

  解决方法:

  ./configure 后面加上–with-cc-opt=’-DLINUX=2 -D_REENTRANT -D_LARGEFILE64_SOURCE -march=i686 -pthread’ ,如下:

  # make clean

  # ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_pagespeed-release-1.6.29.5-beta

  --with-cc-opt='-DLINUX=2 -D_REENTRANT -D_LARGEFILE64_SOURCE -march=i686 -pthread'

  # make

  # mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx$(date +%m%d) #备份nginx原文件

  # cp objs/nginx /usr/local/nginx/sbin/nginx #复制编译make后的文件覆盖nginx原文件

  # /usr/local/nginx/sbin/nginx -t #检测nginx配置文件语法是否正确

  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

  # kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` #把nginx.pid改成nginx.pid.oldbin跟着启动新的nginx

  # kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` #退出旧的nignx

  使用ngx_pagespeed

  # mkdir /var/ngx_pagespeed_cache

  # chown www.www /var/ngx_pagespeed_cache

  # cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf$(date +%m%d) #备份nginx配置文件

  # vi /usr/local/nginx/conf/nginx.conf

  server {

  #省略

  pagespeed on;

  pagespeed FileCachePath /var/ngx_pagespeed_cache;

  pagespeed RewriteLevel CoreFilters;

  pagespeed EnableFilters local_storage_cache;

  pagespeed EnableFilters collapse_whitespace,remove_comments;

  pagespeed EnableFilters outline_css;

  pagespeed EnableFilters flatten_css_imports;

  pagespeed EnableFilters move_css_above_scripts;

  pagespeed EnableFilters move_css_to_head;

  pagespeed EnableFilters outline_javascript;

  pagespeed EnableFilters combine_javascript;

  pagespeed EnableFilters combine_css;

  pagespeed EnableFilters rewrite_javascript;

  pagespeed EnableFilters rewrite_css,sprite_images;

  pagespeed EnableFilters rewrite_style_attributes;

  pagespeed EnableFilters recompress_images;

  pagespeed EnableFilters resize_images;

  pagespeed EnableFilters convert_meta_tags;

  location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" { add_header "" ""; }

  location ~ "^/ngx_pagespeed_static/" { }

  location ~ "^/ngx_pagespeed_beacon$" { }

  location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }

  location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }

  #省略

  }

  # /usr/local/nginx/sbin/nginx -t

  Setting option from ("on")

  Setting option from ("FileCachePath", "/var/ngx_pagespeed_cache")

  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

  # service nginx restart

  Stopping nginx: [ OK ]

  Starting nginx: Setting option from ("on")

  Setting option from ("FileCachePath", "/var/ngx_pagespeed_cache") [ OK ]

  # curl -I 'http://www.linuxeye.com/' | grep X-Page-Speed

  % Total % Received % Xferd Average Speed Time Time Time Current

  Dload Upload Total Spent Left Speed

  0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0

  X-Page-Speed: 1.4.0.0-2748

  注意:

  如果discuz使用了伪静态要注销掉下面部分(前面加#注销):

  #if (!-e $request_filename) {

  # return 404;

  #}

  使用后效果如下:

  使用PageSpeed模块效果演示网站:http://www.server110.com

时间: 2024-09-12 21:44:10

Nginx安装配置PageSpeed模块实现网站加速的相关文章

Nginx安装配置PHP(FastCGI)环境的教程

这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP. FastCGI是从CGI发展改进而来的.传统CG

centos 6.6 Nginx 安装配置(已纠正)

Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 在高连接并发的情况下,Nginx是Apache服务器不错的替代品. Nginx 安装 系统平台:CentOS release 6.6 (Final) 64位. 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtoo

centos下Nginx安装配置步骤详解

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环境可以使用以下指令 apt-get install build-essential apt-get install libtool centos平台编译环境使用如下指令 安装make: yum -y install gcc automake autoconf libtool make 安装g++:

在Linux(Ubuntu)+Nginx安装配置AjaXplorer

AjaXplorer一款牛X到不行的功能强大的PHP文件管理器. 之前看到过AjaXplorer的介绍一直没有安装使用,这几天有看到有更新了决定安装试用一下. 安装前在网络没有找到安装教程,参考官网以及安装过程中遇到问题Google后记录,整理一下分享. 1.AjaXplorer介绍 官网:http://ajaxplorer.info 下载:http://sourceforge.net/projects/ajaxplorer/ 特点 基于Web技术,有着Ajax.漂亮的UI 类似本地资源管理器的

《深入理解Nginx》阅读与实践(一) Nginx安装配置与HelloWorld

最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯捷在他的<STL源码剖析>的自序里说过,"追踪一流作品并于其中吸取养分,远比自己关起门来写个三流作品,价值高得多".我个人比较喜欢<深入理解Nginx>这本书,它讲解的很全面,相关的知识都会有所介绍,整体的脉络比较明晰.只是涉及东西比较多,有时真希望纸质文档也能像在

CentOS7安装配置Lighttpd+PHP+MYSQL网站环境过程

第一.安装必要的软件包   1.安装EPEL    代码如下 复制代码 yum install epel-release   2.升级系统环境包    代码如下 复制代码 yum update -y   第二.安装Lighttpd   1.自动安装    代码如下 复制代码 yum install lighttpd -y   2.手工安装   这里我们可以到lighttpd官方网站手动安装最新lighttpd版本.    代码如下 复制代码 wget http://download.lightt

nginx安装tcp代理模块的步骤

  系统:centos 5.x   需要的软件包:nginx_tcp_proxy_module                nginx-1.4.6 1.安装前准备  代码如下 复制代码 yum -y install gcc gcc-c++  ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel autoconf pcre-devel libtool-libs freetype-devel

Nginx服务器开启pagespeed加速的教程

上周有一个站长问到我一个问题,问fastcgi_cache和pagespeed加速有没有冲突.略微想了下,2个都是比较原生的主,应该不存在兼容问题.至于这个朋友问到这2个机制处理的先后问题,我思考了下.既然fastcgi_cache已经是缓存到本地的文件,那么pagespeed肯定是后处理的.通俗来说,就是当用户访问WEB时,Nginx 应该是先调用 fastcgi缓存,然后再进行pagespeed优化处理,最后返回数据给用户.当然,经过我最后的测试,也证实了我的猜测是正确的. 一.还能再快  

Linux系统下安装配置Nginx环境整理

PHP的这些环境在linux下也折腾过很多次了,每次重装都要重新去找这些文档,记性不好,还是自己整理下吧. Nginx安装 # yum -y install gcc* pcre glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel lrzsz    # groupadd www && useradd www -g www   # wget http://nginx.org/download/nginx-1.6.1.tar.g