nginx 如何启用 Gzip

背景

Web 服务器打开 Gzip 压缩有两大好处:一是用户可以更快地获取资源,二是服务器可以节省流量开销。

代码片断

server {
	listen		80;
	server_name	yuanbiji.net;
	
	gzip             on;
	gzip_vary        on;
	gzip_min_length  1k;
	
	gzip_types
		text/plain
		text/xml
		text/css
		application/javascript
		application/json
		image/x-icon
		image/svg+xml;

	# 以下是网站的常规配置(略)
	# ...
}

各参数的含义如下:

  • gzip —— Gzip 总开关。
  • gzip_vary —— 输出 Vary: Accept-Encoding 响应头。通常需要打开。
  • gzip_min_length —— 当资源体积小于一定阈值时,通过 Gzip 压缩传输的意义不大,没有必要启用 Gzip。这个参数用于设置这个阈值。
  • gzip_types —— 针对哪些资源类型启用 Gzip。上面列出的是最常见的几种可压缩的类型,可根据业务的实际情况添加其他类型。

  • nginx 在处理 gzip_types 参数时总是会加入 text/html,因此没有必要写出来。写出来反而会报错。

  • 对于本身已经是压缩格式的资源(比如视频、压缩包等)来说,启用 Gzip 不仅没有好处,反而可能导致实际传输量更大、消耗服务器计算资源等负面结果。因此需要谨慎设置 gzip_types 参数。(关于某种资源类型是否可压缩,请参见 MIME Type 与文件扩展名大全。)

标签: nginx
最后更新:2023-02-12 13:09:41

相关小抄