Nginx 开启 Gzip 压缩

为你的网站开启 Gzip 压缩,有效节省30%流量,提高访问速度

是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。

Nginx开启 Gzip 压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能! Web网站上的图片,视频等其它多媒体文件以及大文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存。 开启 Gzip 功能后,Nginx服务器会根据配置的策略对发送的内容, 如css、js、xml、html等静态资源进行压缩, 使得这些内容大小减少,在用户接收到返回内容之前对其进行处理,以压缩后的数据展现给客户。这样不仅可以节约大量的出口带宽,提高传输效率,还能提升用户快的感知体验, 一举两得; 尽管会消耗一定的cpu资源,但是为了给用户更好的体验还是值得的。

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"),<br />no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含<br />  "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://uzbox.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压缩情况。

https://tool.chinaz.com/gzips/

评分

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注