文档章节

Nginx开启和配置gzip

Junn
 Junn
发布于 2013/07/01 14:12
字数 928
阅读 6956
收藏 0

gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,可以极大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的。

gzip
决定是否开启gzip模块
example:gzip on;

gzip_buffers 
设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
param2:int(k) 后面单位是k
example: gzip_buffers 4 8k;

gzip_comp_level
设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
param:1-9
example:gzip_com_level 1;

gzip_min_length
当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩
param:int
example:gzip_min_length 1000;

gzip_http_version
用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略
param: 1.0|1.1
example:gzip_http_version 1.0

gzip_proxied
Nginx做为反向代理的时候启用,
param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]
expample:gzip_proxied no-cache;
off – 关闭所有的代理结果数据压缩
expired – 启用压缩,如果header中包含”Expires”头信息
no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
private – 启用压缩,如果header中包含”Cache-Control:private”头信息
no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
no_etag – 启用压缩,如果header中包含“ETag”头信息
auth – 启用压缩,如果header中包含“Authorization”头信息
any – 无条件压缩所有结果数据

gzip_types
设置需要压缩的MIME类型,非设置值不进行压缩
param:text/html|application/x-javascript|text/css|application/xml
example:gzip_types text/html;

对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。启用GZIP以后,可以大幅度减少所需的流量(如上图所示,本站首页大小从28K压缩到了7K)。以下是以nginx服务器为例开启gzip的一般代码。

#启用gzip
gzip on;
#需要压缩文件的最小尺寸,单位是B
gzip_min_length  1100;
#gzip文件缓存大小
gzip_buffers     4 8k;
#gzip压缩文件格式,以下涵盖了一般所需的类型
gzip_types       text/plain text/css application/x-javascript;
#gzip压缩等级,数值越高压缩得越狠,也越占资源
gzip_comp_level 4

Demo
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/html application/x-javascript text/css application/xml;


以上代码可以插入到 http {...}整个服务器的配置里,也可以插入到虚拟主机的 server {...}或者下面的location模块内。

值得注意的是纯文本类文件的Gzip压缩,效果颇佳,所有的浏览器都能很好支持。而图片格式不不论是PNG/GIF还是JPG,在IE6下支持都非常差,甚至会出现卡死的情况。一个可行的办法是可以在GZIP配置里面加入一行
gzip_disable msie6;
然而实际情况是图片实际不需要压缩——当然我是指网络传输格式的,这些文件已经高度压缩过了(明证是用7Z格式压缩同样为300M大小的文本和图片格式,前者可以压到2M,后者几乎大小不变),启用GZIP不但相当占用资源,还会起负面效果。

最后需要说明的是GZIP是否起作用,可以用网页GZIP压缩检测工具来测试(站长工具)。

© 著作权归作者所有

Junn
粉丝 143
博文 412
码字总数 288918
作品 0
海淀
技术主管
私信 提问
Nginx的Gzip压缩简单配置

ngxhttpgzip_module模块 主要负责Gzip功能的开启和设置,对相应数据进行实时压缩. gzip指令 用于开启Gzip功能 ,默认为off gzip_buffers指令 用于设置Gzip压缩文件使用缓存空间的大小 number指...

期待l
2018/08/07
0
0
优化Laravel网站打开速度

1.关闭debug 打开文件,把设置为. 2.缓存路由和配置 3.composer优化 4.Laravel优化命令 5.使用Laravel缓存 使用Laravel的Cache方法缓存内容,有文件缓存,数据库缓存,redis缓存。 6.使用CDN...

Jimmy
2017/06/27
0
0
Nginx配置gzip压缩的简单示例

本文介绍下,在nginx中配置gzip压缩的简单例子,一段核心的配置节代码,供大家参考。 在nginx中配置gzip压缩很简单,只需要几行代码即可。 使用 gzip 压缩可以降低网站带宽消耗,提升访问速度...

mysoftsky
2013/09/04
137
0
nginx学习--nginx下的gzip与vary、预压缩、缓存、反向代理的结合

来自:nginx系列(十七)nginx下的gzip与vary、预压缩、缓存、反向代理的结合 介绍 在http的协议里,为了减少网络传输,允许将报文进行gzip压缩以后再传输。虽然网络传输体积减小了,但是服务器...

spinachgit
2018/12/23
121
0
vue cli3开启gzip,nginx配置直接使用已经压缩好的文件(文件名为加.gz)

前言:vue cli3的性能优化里面,开启gzip能得到很多的收益。通过webpack插件compression-webpack-plugin可以在打包的时候生成.gz文件;当用nginx做服务器时,nginx通过gzip on;配置可对每个请...

hkaikai
06/29
223
0

没有更多内容

加载失败,请刷新页面

加载更多

centos 查看删除旧内核

1、查看系统中安装的内核 $ yum list installed | grep kernel 2、删除系统中旧内核 $ yum install yum-utils$ package-cleanup --oldkernels --count=2...

编程老陆
11分钟前
6
0
ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部