加速nginx性能: 开启gzip和缓存

开启gzip

配置

# 开启gzip
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 2;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

关于具体的参数说明可以参考 nginx 的文档

gzip_comp_level 参数

关于 gzip_comp_level 的合理值,可以参考下图。来自 serverfault

从图中可以看出 gzip_comp_level 大于2时效果并不是很明显。所以可以将值设置为1或者2。

开启缓存

配置

location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
    access_log  off;
    expires   30d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
  access_log  off;
  expires   24h;
}
location ~* ^.+\.(html|htm)$ {
    expires   1h;
}

其中的缓存时间可以自己根据需要修改。

关于字体
为静态资源开启缓存能够较少服务器带宽的消耗,特别是在css中使用字体时,同时配合gzip压缩能够大大减少下载字体造成的带宽影响。

设置字体缓存

需要注意的是,字体有很多格式,为所有字体格式设置缓存是很有必要的。

location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
    access_log  off;
    expires max;
}

启用gzip

只需要为 ttf、otf 和 svg 字体启用 gzip,对其他字体格式进行 gzip 压缩时效果不明显。

gzip_types font/ttf font/otf image/svg+xml

各种字体类型压缩效果可以参考以下测试结果:

可以看到对 woff 和 eot 进行 gzip 压缩效果不好。

字体总结

扩展名 是否压缩 Content-type
.eot application/vnd.ms-fontobject
.ttf font/ttf
.otf font/opentype
.woff font/x-woff
.svg image/svg+xml
(0)

相关推荐

  • Nginx中使用gzip_http_version解决CDN只支持http 1.0问题

    网站经过CDN后,看CSS文件的header发现 复制代码 代码如下: Transfer-Encoding: chunked google了许久,发现是CDN的抓取好像只支持http 1.0 而nginx的 gzip_http_version选项默认值为1.1 在nginx的配置文件中增加或修改gzip_http_version参数,为: 复制代码 代码如下: gzip_http_version 1.0 改完重启nginx 再看已经正常. 参考文档:http://wiki.nginx.org/N

  • Nginx服务器中的GZip配置参数详解

    gzip(GUN-ZIP)是一种压缩技术,经过gzip压缩后的页面大小可以变成原来的30%或者更小. 用户浏览页面的时候速度也会更快,gzip的压缩页面需要服务端于浏览器同时支持,服务端压缩传到 浏览器进行解压并解析,现在大多数的浏览器都已经支持解析gzip过的页面 gzip使用环境:http,server,location,if(x),一般我把它定义在nginx.conf的http{-..}之间 gzip on; 开启gzip  off关闭 gzip_min_length 1k; 设置允许压缩

  • Node.js站点使用Nginx作反向代理时配置GZip压缩的教程

    node.js 开发的站点,如果你也是用了nginx实现反向代理. 那么在服务端可以轻松实现 gzip 压缩,让站点浏览更顺畅. 前提条件: node.js + nginx 反向代理. node.js 需要做的工作: express 4.0以下版本: app.use(express.compress()); //主要是这句 app.use(express.json()); app.use(express.urlencoded()); app.use(express.bodyParser());

  • nginx配置gzip压缩页面

    gzip(GNU-ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多.gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析. Nginx的压缩输出有一组gzip压缩指令来实现.相关指令位于http{-.}两个大括号之间. gzip on;该指令用于开启或关闭gzip模块(on/off) gzip_min_length 1k;设置允许压缩的页面最小字节数,页面字节数从header头得c

  • nginx下gzip配置参数详解

    Nginx自带的有gzip模块 http://wiki.nginx.org/NginxChsHttpGzipModule ,这个模块支持在线实时压缩输出数据流.经过良好的配置优化,可以大幅的提升网站的输出效率. __使用范例__ 复制代码 代码如下: gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml; 内

  • Nginx启用GZIP压缩网页传输方法(推荐)

    原理: 浏览器-请求--> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩 从http协议的角度看–请求头 声明 acceopt-encoding: gzip deflate sdch (是指压缩算法,其中sdch是google倡导的一种压缩方式,目前支持的服务器尚不多) 服务器–>回应-把内容用gzip方式压缩-->发给浏览器 浏览<-–解码gzip-–接收gzip压缩内容-- gzip配置的常用参数 参数 含义 gzip on/off

  • Nginx Gzip模块启用和配置指令详解

    Nginx的gzip模块是内置的,在http中添加如下配置: 复制代码 代码如下: gzip on;gzip_min_length  5k;gzip_buffers     4 16k;gzip_http_version 1.0;gzip_comp_level 3;gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php

  • 详解Nginx服务器的配置中开启文件Gzip压缩的方法

    gzip(GNU- ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多.gzip的压缩页面需要浏览 器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析.浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip 过的页面. Nginx的压缩输出有一组gzip压缩指令来实现.相关指令位于http{-.}两个大括号之间. 下面大致讲一下配置开启gzip压缩的方法: 1.Vim打开Nginx配置文件 v

  • Nginx服务器中使用gzip压缩的相关配置解析

    gzip压缩 使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度. 主要在nginx服务端将页面进行压缩,然后在浏览器端进行解压和解析, 目前大多数流行的浏览器都迟滞gzip格式的压缩,所以不用担心. 默认情况下,Nginx的gzip压缩是关闭的,同时,Nginx默认只对text/html进行压缩 主要配置如下: gzip on;#开启 gzip_http_version 1.0;#默认1.1 gzip_vary on; gzip_comp_level 6; gzip_proxied a

  • Nginx中的Gzip压缩配置介绍

    随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? gzip(GNU- ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多.gzip的压缩页面需要浏览 器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析.浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip 过的页面. Nginx的压缩输出有一组g

随机推荐