首页

Cloudflare开启Zstd,不折腾Nginx

6天前

开启Cloudflare端的Zstd

Cloudflare上的Zstd压缩完全免费,Cloudflare真是大善人啊!

1.选择自己的站点

2.在侧边栏中选择“规则”→概述

3.创建压缩规则

4.填入设置并保存

验证Zstd已经开启

PowerShell/CMD

iwr https://你的域名 -Me Head -H @{"Accept-Encoding"="zstd";"User-Agent"="Mozilla/5.0"} -UseBasicParsing | select -Expand Headers

在PowerShell检查网站是否已经支持Zstd压缩

Linux

curl -I -H "Accept-Encoding: zstd" https://你的域名

在Linux检查网站是否已经支持Zstd压缩

为什么应该开启Zstd?

Zstd (Zstandard) 是Facebook在2016年发布的网络传输压缩算法

在很长一段时期内,数据压缩一直存在一个“不可能三角”
压缩率编码速度解压延迟往往不可兼得
而Zstd在压缩比和速度的平衡点上,几乎是全方位碾压

「主流压缩算法性能对比」

算法 压缩比(级别1) 压缩速度 解压速度
Zstd -1 2.896 510 MB/s 1550 MB/s
Zstd --fast=1 2.439 545 MB/s 1850 MB/s
Gzip 2.743 105 MB/s 390 MB/s
Brotli 2.883 290 MB/s 425 MB/s
LZ4 2.101 675 MB/s 3850 MB/s

Zstd的跨代式突破

  • 在基础模式下,压缩是Gzip3.4倍
  • 压缩速度最高可达Gzip9倍,并且压缩比更优
  • 并且解决了“高压缩比导致慢解压”的行业顽疾。解压速率约1.5GB/s

Zstd提供从-1至22级的全场景覆盖
1-3级适合极速传输,默认3级即可满足90%以上需求。

为什么不选Brotli?

Brotli在极限压缩率上略胜一筹(3-4个百分点),但实时网络传输中,Brotli的高延迟和CPU占用往往会抵消在小文件上的优势

不选Brotli的原因
更均衡:避免了Brotli极端压缩带来的高CPU损耗
低延迟:极快的编解码速度比微小的体积优势对实时传输更重要
防瓶颈:防止客户端因解压负担过重导致的页面卡顿


Cloudflare官方评价

作为全球网络性能巨头,Cloudflare给予了Zstd高度评价

Zstd的表现令人印象深刻,近年来,因其出色的压缩比和速度而广受欢迎。
Cloudflare实验室数据显示:Zstd的压缩速度比Brotli快42%,而效能几乎持平
相比行业通用的Gzip,Zstd在维持同等处理速度的前提下,压缩效率提升了约11.3%

来源:[Blog.Cloudflare]​


有适配上的困难吗?

适配已趋成熟

早在Chrome123版本(2024年3月)已全面支持,随后Edge及其他基于Chromium内核的浏览器也悉数跟进

Zstd仅作用于传输层压缩,不改变服务器底层数据,具备极高的稳定性

iOS端的“兼容墙”

唯一的适配缺口在于Apple生态.。截至目前,Apple的Safari浏览器仍未支持Zstd
AppleLZFSE算法在2015年推出(其压缩率与Zlib 5级相当,但速度快2-3倍且更省电)
Apple方面认为现有的LZFSE算法已满足需求,这些优势得益于针对ARM64 指令集做了深度优化
Apple这种技术路径的执着,导致iPhone用户无法享受到Zstd这一红利。

但问题是时代变了
2016年面世的Zstd,在压缩比和速度的平衡点上,几乎是全方位碾压

Apple方面认为够用就不急着换,所以Apple强推LZFSE算法。导致后续适配 Zstd会非常困难
Safari用户不得不退回到古老的Gzip,或者强行忍受LZFSE的局限性


如果用户的浏览器不支持Zstd,会发生什么?

Cloudflare完善了自动降级机制
当客户端不支持Zstd时,Cloudflare会回退至Brotli或Gzip
虽然传输效率有所下降,但规避了访问失败的风险


Zstd的碾压

维度GzipBrotliLZ4Zstd
压缩比中等
压缩速度极高极高
解压速度中等中等极高极高
CPU效率一般一般极高
可配置性
流式处理支持不支持支持优化支持
字典压缩
标准化部分
  • Zstd level 3:27秒,770MB,CPU15%
  • Gzip+pigz:需更长时间,CPU类似但文件更大
  • Zstd level 19:更高压缩比,但仍保持理想的解压速度

文章的查询工作由AI完成,句子大部分为AI,人类仅做语句优化

留下第一个评论