`
阅读更多

网站加载速度越快,访客互动性、留住率和转换率就越高,这早已不是什么秘密。网站每延迟 100毫秒,亚马逊的销售额就会减少1%;延迟增加500毫秒,这意味着谷歌的流量和收入就会减少20%。要是有一个办法可以为你的网站服务器提速,又不 必升级到功能更强大的服务器,就没有理由不试一试这个办法。

 

 

我在本教程中将介绍如何优化Nginx网站服务器,以提升其性能。虽然Nginx网站服务器本身已俨然成为运行速度最快、可扩展性最佳的网站服务器之一,但是仍有众多方法可以调整优化其常规安装系统的性能。

 

举例说,有一个由谷歌开发的网站服务器模块,名为PageSpeed模块(https://developers.google.com/speed/pagespeed/module)。 PageSpeed旨在缩短网页加载的时间,减少网站服务器的带宽使用量。最近,已发布了Nginx版本的PageSpeed模块 (ngx_pagespeed)。作为一种有望为Nginx网站服务器提速的可行方法,我将演示如何在Nginx中启用并配置ngx_pagespeed 模块。

 

PageSpeed的功能特性

 

PageSpeed模块可以使用数量众多的重写"过滤器",每个过滤器都可以选择性地开启/关闭,从而自动进行各种优化(比如,减小文档大小、减少HTTP请求数据、减少HTTP往返次数以及缩短DNS解析时间)。

 

下面是ngx_pagespeed支持的其中一些过滤器。想了解支持的全部过滤器,请参阅官方文档

 

  • Collapse Whitespace(压缩空白):通过把HTML网页中的多处连续空白换成一处空白,减少带宽使用量。
  • Canonicalize JavaScript Libraries(规范化转换JavaScript库):通过自动把流行的JavaScript库换成免费托管的JavaScript库(比如由谷歌托管),减少带宽使用量。
  • Combine CSS(合并CSS):通过把多个CSS文件合并成一个CSS文件,减少HTTP请求数量。
  • Combine JavaScript(合并JavaScript):通过把多个JavaScript文件合并成一个JavaScript文件,减少HTTP请求数量。
  • Elide Attributes(省略属性):通过删除由默认属性指定的标签,缩小文档大小。
  • Extend Cache(扩展缓存):通过优化网页资源的可缓存性,减少带宽使用量。
  • Flatten CSS Imports(精简CSS导入):通过删除CSS文件中的@import,减少HTTP请求往返次数。
  • Lazyload Images(延时加载图片):延时加载在客户端浏览器上看不见的图片。
  • Minify JavaScript(缩小JavaScript):通过缩小JavaScript,减少带宽使用量。
  • Optimize Images(优化图片):通过引入更多的内嵌图片、压缩图片,或者将GIF图片转换成PNG图片,优化图片分发。
  • Pre-Resolve DNS(预解析DNS):通过预解析DNS,缩短DNS解析时间。
  • Prioritize Critical CSS(优化加载关键CSS规则):重写CSS文件,以便首先加载渲染页面的CSS规则。

 

与Apache网站服务器不一样,Nginx模块无法在运行时动态加载,而是必须在编译时加载。截至本文截稿时,ngx_pagespeed模块并 未内置在随主要Linux发行版(比如Fedora 19)发布的Nginx程序包中。因而,想使用Nginx中的PageSpeed,你需要利用源代码来构建Nginx。

 

借助ngx_pagespeed,构建和安装Nginx

 

安装用于构建nginx和ngx_pagespeed的必备要素。

 

在Debian、Ubuntu或Linux Mint上:

 

在Fedora、CentOS或RHEL上:

 

下载并安装ngx_pagespeed源代码,如下所示。

 

ngx_pagespeed会被解压缩到/usr/local/nginx/modules/ngx_pagespeed-1.7.30.3-beta

 

下载预构建的PSOL(PageSpeed优化库,https://developers.google.com/speed/pagespeed/psol),并将它安装到ngx_pagespeed目录下:

 

从http://nginx.org/en/download.html,下载Nginx的最新稳定版。

 

最后,在ngx_pagespeed模块启用的情况下,编译Nginx,并安装它,如下所示。

 

你应该确认,ngx_pagespeed模块已添加到安装的Nginx系统上,如下所示。

 

配置Nginx中的ngx_pagespeed模块

 

想启用并配置ngx_pagespeed,就要编辑Nginx配置的server部分。nginx.conf的下面这个示例表明了如何指定一个或多个PageSpeed过滤器。

 

说到指定PageSpeed过滤器,有两种不同的级别可供你选择:CoreFilters和PassThrough。除非有所指定,否则默认情况下使用CoreFilters。

 

对新手用户而言:使用CoreFilters

 

CoreFilters含有一系列PageSpeed过滤器,谷歌认为这些过滤器对大多数网站来说是安全的。如果启用CoreFilters,你就 自动启用了一系列"安全"规则。所以,推荐新手用户采用这种方法。如果你愿意,也可以禁用CoreFilters中的某个或某些过滤器,或者选择性地启用 额外的过滤器。下面这个例子表明了使用CoreFilters的ngx_pagespeed配置。

 

想了解CoreFilters中的全部过滤器,请参阅官方文档

 

对高级用户而言:使用PassThrough

 

如果是高级用户,你可以使用PageThrough级别,你可以手动启用个别过滤器。

 

另外的配置步骤:

 

创建将由Nginx写入的一个文件缓存目录。

 

为了方便起见,为Nginx创建一个初始化脚本。

 

最后,启动Nginx。

 

注意:除了ngx_pagespeed外,你可能还需要定义额外的Nginx模块(比如HTTPS/SSL支持等),具体视需求而 定。这种情况下,你需要在Nginx编译这个环节来添加这些模块。请参阅这篇教程(http://xmodulo.com/2014/01 /compile-install-nginx-web-server.html),了解如何启用额外的Nginx模块。

 

分享到:
评论

相关推荐

    搭建nginx点播服务器

    负载均衡:如果需要,Nginx可以配置为分发点播内容的负载均衡,确保请求分散到多个服务器上,从而提高可用性和性能。 流媒体支持:Nginx可以与特定的流媒体模块(如nginx-rtmp-module)集成,以支持实时流媒体传输。...

    强烈推荐 打造高性能nginx缓存服务器

    强烈推荐 打造高性能nginx缓存服务器

    nginx图片服务器配置和https配置

    nginx图片服务器配置和https配置

    nginx-1.0.4 服务器软件下载

    nginx-1.0.4 nginx nginx最新版 全能服务器 代理服务器 http://www.bywei.cn/blog 程序员百味 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 ...

    Nginx web服务器

    Nginx 高性能web服务器详解、包括安装、配置、Linux内核优化、Nginx的相关优化等

    NGINX高性能WEB服务器详解(PDF)(2/2)

    同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个基于Nginx服务器,同时还部署有其他典型服务器的分布式网站架构部署配置。

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目.zip

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理...

    nginx高性能web服务器详解

    同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个基于Nginx服务器,同时还部署有其他典型服务器的分布式网站架构部署配置。...

    使用Tomcat或Nginx搭建视频服务器

    使用Tomcat搭建视频服务器,后面又在Ubuntu上用Nginx做了一套。使用ffmpeg处理视频文件为HLS协议的分片以支持点播。

    ubunt下安装nginx web服务器

    手把手ubunt下安装nginx web服务器,包括安装前提;nginx源码下载以及目录结构认识;nginx的编译和安装;nginx的启动和简单使用

    nginx rtmp 服务器编译好

    nginx rtmp 服务器编译好的 windows 的很好用的哦

    nginx服务器 linux 版本

    nginx服务器 linux 版本 2013.01.19

    nginx 1.9.7服务器windows版

    nginx 1.9.7服务器windows版,从官网上下载。 MD5:17B8480077BC305FE85352B173CC57D7

    nginx服务器

    Nginx是一个轻量级高性能的web服务器,它是为快速响应大量静态文件请求和高效利用系统资源而设计的。与apache使用面向进程或线程的方式处理请求不同,nginx使用异步事件驱动模型在负载下性能更突出。 虽然nginx能...

    nginx搭建文件服务器上传文件获取文件

    基于openresty+nginx+lua实现文件服务器(包括获取文件及上传文件)

    nginx服务器及使用

    该资源包括nginx服务器,设置nginx服务为windows服务开机自启动方法说明

    Nginx服务器的安装与配置

    Nginx服务器的安装与配置Nginx服务器的安装与配置

    一步步安装nginx搭建流媒体服务器

    一步步安装nginx搭建流媒体服务器的所有软件打包; nginx-1.8.0.tar.gz :应用服务器主程序 nginx_mod_h264_streaming-2.2.7.tar.gz :MP4流媒体支持模块。 openssl-1.0.1c.tar.gz :openssl库 pcre-7.9.tar.gz :...

    Nginx服务器的安装与配置.pdf

    Linux+nginx+php+mysql+memcache服务器...第10章 Nginx在国内知名网站中的应用案例.pdf 第11章 Nginx的非典型应用实例.pdf 第12章 Nginx的核心模块.pdf 第13章 Nginx的标准HTTP模块.pdf 第14章 Nginx的其他HTTP模块.pdf

Global site tag (gtag.js) - Google Analytics