精品软件与实用教程
为你的网站开启 Gzip 压缩,有效节省30%流量,提高访问速度
Gzip 是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。
Nginx开启 Gzip 压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能! Web网站上的图片,视频等其它多媒体文件以及大文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存。 开启 Gzip 功能后,Nginx服务器会根据配置的策略对发送的内容, 如css、js、xml、html等静态资源进行压缩, 使得这些内容大小减少,在用户接收到返回内容之前对其进行处理,以压缩后的数据展现给客户。这样不仅可以节约大量的出口带宽,提高传输效率,还能提升用户快的感知体验, 一举两得; 尽管会消耗一定的cpu资源,但是为了给用户更好的体验还是值得的。
Gzip 配置参数
经过Gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多。Gzip 的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器 都支持解析Gzip过的页面。
Gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度。Gzip压缩可以配置http,server和location模块下。Nginx开启Gzip压缩配置参数说明:
gzip on; #是否开启gzip模块 on表示开启 off表示关闭 gzip_buffers 4 16k; #设置压缩所需要的缓冲区大小 gzip_comp_level 6; #压缩级别1-9,数字越大压缩的越好,也越占用CPU时间 gzip_min_length 1k; #设置允许压缩的最小字节 gzip_http_version 1.1; #设置压缩http协议的版本,默认是1.1 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 application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; #设置压缩的文件类型 gzip_vary on; #加上http头信息Vary: Accept-Encoding给后端代理服务器识别是否启用 gzip 压缩 gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持) gzip_proxied off; #nginx做为反向代理时启用,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_modefied(启用压缩,header头中不包含
"Last-Modified"),no_etag(启用压缩,如果header头中不包含"Etag"头信息),auth(启用压缩,如果header头中包含"Authorization"头信息)
编辑nginx配置文件
[root@uzbox ~]# vim /usr/local/nginx/conf.d/www.conf http { gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 9; gzip_vary on; gzip_disable "MSIE [1-6]\."; 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 application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; }
重载配置文件
systemctl reload nginx
检测 Gzip 是否开启
[root@uzbox ~]# curl -I -H"Accept-Encoding: gzip, deflate" "https://boxqu.com" HTTP/2 200 server: nginx/1.18.0 date: Wed, 30 Nov 2022 05:19:05 GMT content-type: text/html; charset=UTF-8 content-length: 40429 x-powered-by: PHP/7.4.19 vary: Accept-Encoding, Cookie cache-control: max-age=3, must-revalidate content-encoding: gzip last-modified: Wed, 30 Nov 2022 04:27:54 GMT strict-transport-security: max-age=31536000
如上,response header头信息中出现"Conten_Encoding: gzip" , 就说明Nginx已开启了压缩 (在浏览器访问, 通过F12看请求的响应头部 也是一样)
Nginx开启 Gzip 压缩功能后, 定义的gzip type的文件在传输时的大小明显变小, 这样这会大大提高nginx访问性能.
网页 GZIP 压缩检测
通过下面网站可以检测Gzip压缩情况。