网站首页 > 技术教程 正文
1、gzip压缩技术
gzip(GNU-ZIP)是一种压缩技术,经过gzip压缩后,页面大小可以变为原来的30%甚至更少,这样用户访问的时候速度会快得多。gzip网页压缩的实现需要浏览器和服务器的支持。
gzip压缩的过程:
首先在服务器端压缩,然后传到浏览器端后解压,当浏览器支持gzip解压时,会在请求消息头中包含Accept-Encoding:gzip,这样Nginx就会向浏览器发送经过gzip后的内容,同时在响应消息头中加入Content-Encoding:gzip,这是gzip后的内容,告知浏览器要先解压才能解析输出。
2、网页压缩传输配置
Nginx服务器为网页压缩专门提供了gzip模块,并且模块中的相关指令均可以设置在http,server,location块中,实现服务器端按照指定的设置进行压缩,具体指令如下:
gzip:用于开启或关闭gzip模块;
gzip_buffers:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流;
gzip_comp_level:gzip压缩比,压缩级别是1~9,1的压缩级别最低,9的压缩级别最高,压缩级别越高压缩率越大,压缩时间越长;
gzip_disable:对一些特定的User-Agent不使用压缩功能;
gzip_min_length:设置允许压缩的页面最小字节数,页面字节数从响应消息头的Content-Length中进行获取;
gzip_http_version:识别HTTP协议版本,其值可以是1.1(默认值)或1.0;
gzip_proxied:用户设置启用或禁用从代理服务器上收到响应内容的gzip压缩功能;
gzip_types:匹配MIME类型进行压缩,且无论是否指定,text/html类型总是会被压缩的;
gzip_vary:用于在响应消息头中添加Vary,Accept-Encoding,使代理服务器根据请求头中的Accept-Encoding识别是否启用gzip压缩;
1、修改配置文件
2、访问测试
Content-Encoding为gzip类型,Content-Type为html,Transfer-Encoding为chunked表示内容长度不确定;
除了上述配置外,在实际开发 中还可以具体配置压缩比,缓存大小,对于代理是否采用压缩等详细的设置:
gzip_buffers 4 16k; //按照原始数据大小以16KB为单位的4倍申请内存;
gzip_comp_level 4; //压缩等级;
gzip_disable "MSIE [1-6]."; //IE6时,不进行压缩,防止出现页面假死现象;
gzip_min_length 5k; //当响应内容大于5kb时进行压缩输出,且一般建议最小值设置为1kb,当小于1kb时,可能会出现越压越大的问题;
gzip_http_version 1.0;
gzip_proxied any;
gzip_vary on;
gzip_proxied常用参数:
any:无条件压缩所有响应数据;
off:关闭反向代理的压缩;
expired:如果响应消息头包含Expires,启用压缩;
no-cache:如果响应消息头包含Cache-Control:no-cache,启用压缩;
no-store:如果响应消息头包含Cache-Control:no-store,启用压缩;
private:如果响应消息头包含Cache-Control:private,启用压缩;
no_last_modified:如果响应消息头中不包含Last-Modified,启用压缩;
no_etag:如果响应消息头中不包含ETag,启用压缩;
auth:如果响应消息头中包含Authorization头信息,启用压缩;
猜你喜欢
- 2024-10-15 web网站性能优化:nginx开启GZIP压缩网页,JS,CSS
- 2024-10-15 nginx实现公告维护页面(nginx 状态信息)
- 2024-10-15 nginx配置维护页面(nginx界面配置管理)
- 2024-10-15 网页版 Nginx 配置文件生成器发布,在线一键生成
你 发表评论:
欢迎- 最近发表
-
- 搞懂linux awk的使用(linux awk $1)
- ZYNQ QSPI flash分区设置&启动配置
- Linux 的 18 个装 B 命令,记得全部搂一遍
- 【Linux】程序执行的黑魔法:五分钟彻底搞懂 Linux ELF 文件
- 聊一聊 Linux 上对函数进行 hook 的两种方式
- 第十二节 Ubuntu 系统 Docker 镜像安装与容器运行指南
- Linux常用场景-VIM文本编辑批量替换
- Linux 下使用 killall 命令终止进程的 8 大用法
- 告别Permission denied!手把手教你玩转Linux文件权限
- [Linux Shell]批量更改文件&文件夹 名大写为小写
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)