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 与文件扩展名大全。)