Varnish 8.0 介绍与选型指南
Varnish Cache 8.0 介绍与选型指南:官方资料溯源的 HTTP 加速缓存架构、VCL 配置语言、项目更名 Vinyl Cache 与仓库迁移的治理沿革、快速上手与适用限制,以及与 Nginx 缓存、Squid、HAProxy、Apache Traffic Server 的量化选型对比。
Varnish 8.0 介绍与选型指南
目标:基于官方公开资料(varnish-cache.org、vinyl-cache.org 官网与文档、GitHub 官方仓库)溯源介绍 Varnish Cache 8.0 的架构、能力与选型对比,本文不做本地安装与运行实测,全部版本号、日期与社区数据标注来源与查询日期 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(Varnish Cache 官网 varnish-cache.org、Vinyl Cache 官网 vinyl-cache.org、官方安装文档),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 Varnish Cache 8.0(varnish-cache.org 发行版,最新主版本 8.0.0,2025-09-15 发布;安全补丁 8.0.2 于 2026-04-11 发布)。需特别注意:原 Varnish Cache 社区项目已更名 Vinyl Cache,现行最新版本为 Vinyl Cache 9.1.0(详见 2.1 治理沿革)。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| varnish-cache.org 发行版最新主版本 | 8.0.0(2025-09-15 发布) | varnish-cache.org/releases/index.html |
| 8.0 线最新补丁 | 8.0.2(2026-04-11,修复 VSV00019) | vinyl-cache.org 新闻(Security releases: 9.0.1, 8.0.2, 6.0.18) |
| LTS 线 | Varnish Cache 6.0.18(2026-05-18,官网标注 "Supported") | vinyl-cache.org/releases/index.html |
| 上游项目最新版本 | Vinyl Cache 9.1.0(2026-09-16,EOL 2027-09-16);9.0.2(2026-09-16) | vinyl-cache.org/releases/index.html |
| 代码仓库状态 | GitHub 仓库 varnishcache/varnish-cache 已于 2026-02-16 归档为只读,代码迁移至 code.vinyl-cache.org | GitHub 仓库页归档声明、vinyl-cache.org 新闻 |
| 开源许可 | BSD-2-Clause | varnish-cache.org 官网("Free and open source, BSD-2-Clause") |
| 社区热度 | 4045 stars(归档仓库) | github.com/varnishcache/varnish-cache(2026-10-19 实查) |
1.3 官方来源清单
| 来源 | 地址 |
|---|---|
| Varnish Cache 官网 | https://varnish-cache.org/ |
| Varnish Cache 发行表 | https://varnish-cache.org/releases/index.html |
| Vinyl Cache 官网(原社区项目) | https://vinyl-cache.org/ |
| Vinyl Cache 发行表 | https://vinyl-cache.org/releases/index.html |
| 治理沿革说明 | https://r.varnish-cache.org/organization/on_vinyl_cache_and_varnish_cache.html |
| 安装文档 | https://varnish-cache.org/docs/install-guide/ |
| 归档仓库(只读) | https://github.com/varnishcache/varnish-cache |
二、软件概述
本文介绍的是 Varnish Cache 8.0(varnish-cache.org 发行版,最新主版本 8.0.0,2025-09-15 发布)。
Varnish Cache 是开源的 HTTP 加速器(反向缓存代理),部署在源站之前,将可缓存的应答保存在内存中直接应答客户端,不可缓存时再回源获取;缓存策略遵循标准 HTTP 缓存语义,并支持进程内 TLS 终止、容器与 Kubernetes 发行形态(来源:varnish-cache.org 官网首页,2026-10-19 实查)。项目以 BSD-2-Clause 许可发布,GitHub 归档仓库仍有 4045 stars(2026-10-19 实查)。
2.1 治理沿革(选型关键事实)
2025 年是该项目二十周年,随后发生了影响选型的重大治理变化(来源:vinyl-cache.org 官网新闻时间线,2026-10-19 实查):
| 时间 | 事件 |
|---|---|
| 2025-09-15 | 发布 8.0.0,并公告项目将更名("20 years old and it is time to get serious(er)") |
| 2025-12-08 | 更名进行中:原社区项目更名 Vinyl Cache;Varnish Software 将继续维护一个名为 Varnish Cache 的项目 |
| 2026-02-16 | Vinyl Cache 离开 GitHub(varnishcache/varnish-cache 归档只读),代码迁移至 code.vinyl-cache.org |
| 2026-03-16 | Vinyl Cache 9.0.0 发布;7.7 系列终止支持 |
| 2026-04-08 | 官方说明"How to tell apart Vinyl Cache and the new Varnish Cache project" |
| 2026-04-11 | 安全更新:Vinyl Cache 9.0.1、Varnish Cache 8.0.2、6.0.18(VSV00019) |
| 2026-09-16 | Vinyl Cache 9.1.0 / 9.0.2 发布 |
即:当前存在两条同源的产品线——上游社区项目 Vinyl Cache(vinyl-cache.org,9.x 线)与 Varnish Software 维护的 Varnish Cache 发行版(varnish-cache.org,8.x/6.0 LTS 线,官网自述为"Vinyl Cache 项目面向云原生时代的发行版")。本文以 varnish-cache.org 的 Varnish Cache 8.0 为介绍基准。
三、核心架构
3.1 管理进程与工作进程
Varnish 以 varnishd 为核心运行:父进程(manager)负责配置管理与子进程监督,子进程(worker)承载实际流量处理;崩溃自动重启,管理通道(CLI)支持运行时参数调整(官方文档)。
3.2 VCL:可编译的配置语言
缓存与请求处理策略用 VCL(Varnish Configuration Language)表达,配置在加载时编译为原生代码运行于 worker 内,命中路径上不做解释执行——官网将其列为关键特性:"VCL: a programmable, compiled configuration language"(varnish-cache.org 官网,2026-10-19 实查)。
3.3 共享内存日志与观测
Varnish 不直接写磁盘日志:请求日志与计数器写入共享内存段,由 varnishlog、varnishstat 等工具读取,官网称缓存命中路径"无 IO 日志",依赖预分配的工作区与内存池(官网 Performance 区块)。
3.4 存储与后端
- 存储后端以
-s参数配置(如malloc内存存储,官方 systemd 示例使用-s malloc,2g)。 - 后端(backend)在 VCL 中声明,支持动态后端与到源站的 TLS 连接、PROXY 协议;发行版内置进程内 TLS 终止("TLS termination in-process - HTTPS without sidecars",官网特性表)。
四、功能特性
4.1 缓存能力
- 遵循标准 HTTP 缓存头语义,支持 TTL、grace/keep 窗口、缓存清除(ban/purge)。
- 支持 ESI(边缘端包含)、HTTP/2(systemd 示例参数
feature=+http2)、请求/响应改写等(官方文档)。
4.2 VMOD 扩展
通过 VMOD 模块扩展 VCL 能力(官方 VMOD 目录:https://varnish-cache.org/vmods/ ),覆盖加密、header 过滤(re2)、负载均衡等场景;官网新闻区还展示了以 VMOD re2 实现 WAF 式请求头过滤的官方教程。
4.3 云原生发行形态
varnish-cache.org 发行版提供官方容器镜像、Kubernetes Helm Chart(oci://docker.io/varnish/varnish-cache)与 DEB/RPM 软件源(官网安装文档),并强调缓存命中路径"3 次系统调用"的精简内核交互(read/poll/writev)。
4.4 版本线状态(2026-10-19 实查)
- varnish-cache.org 发行表当前列出:8.0.0(2025-09-15)、7.7.3(2025-08-20,已 EOL)、6.0.16(LTS 线,后续补丁为 6.0.18,官网标注 "Supported");8.0 线补丁 8.0.2 于 2026-04-11 发布(vinyl-cache.org 新闻)。
- 上游 Vinyl Cache 9.1.0 为当前最新主版本(2026-09-16,EOL 2027-09-16)。
- 官网说明"每 6 个月发布一个版本"的节奏(varnish-cache.org/releases)。
五、快速上手
以下步骤转述自官网安装文档与首页示例(https://varnish-cache.org/docs/install-guide/install-docker/ ),本文不做本地实测。
5.1 Docker 运行
官网首页给出的最小运行方式:
docker pull varnish
docker run --rm -p 80:80 --name varnish varnish
5.2 自定义 VCL
挂载 VCL 文件定制缓存策略(官网示例):
docker run --rm -p 80:80 --name varnish -v$(pwd)/default.vcl:/etc/varnish/default.vcl:ro varnish
对应的最小 VCL(官网示例):
vcl 4.1;
backend default {
.host = "origin.example.com";
.port = "80";
}
5.3 DEB/RPM 安装与 systemd
Debian/Ubuntu 走官方引导脚本后 apt-get install -y varnish,RPM 系对应 yum 安装;systemd 单元示例参数(官网安装文档):
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -f /etc/varnish/default.vcl -P %t/%N/varnishd.pid -p feature=+http2 -s malloc,2g
安装后编辑 /etc/varnish/default.vcl 并 systemctl restart varnish 生效。完整指引见 https://varnish-cache.org/docs/install-guide/ 。
六、适用场景与限制
6.1 适用场景
- 内容型站点/门户/API GET 资源的内存级加速:命中率直接决定源站卸载比例。
- 作为 CDN 自建节点或源站前的边缘缓存层。
- 需要 VCL 可编程缓存策略(按 header/cookie/路径精细控制)的场景。
- 云原生部署:官方容器镜像 + Helm Chart。
6.2 限制与注意事项
- 治理格局变化大:选型时必须先确认走哪条产品线——上游 Vinyl Cache(9.x,代码在 code.vinyl-cache.org)或 Varnish Software 的 Varnish Cache 发行版(8.x/6.0 LTS);两者发布节奏与支持周期不同(见 2.1)。
- 部分历史版本线已 EOL:官网发行表标注 7.7.3 EOL 2026-03-15、8.0.0 EOL 2026-09-15,6.0 LTS 为当前 "Supported" 线,生产环境应落在受支持版本上。
- 定位为缓存加速器而非通用 Web 服务器:TLS 终止、复杂路由等能力可与 Nginx/HAProxy 组合分工。
- VCL 学习曲线与编译式配置的调试成本需要纳入评估。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| Varnish Cache 8.0 | 专用 HTTP 加速缓存(VCL 可编程) | BSD-2-Clause |
| Nginx(稳定版 1.30) | Web 服务器/反向代理(内嵌 proxy_cache 缓存) | BSD-2-Clause |
| Squid 7.7 | 正向/反向代理缓存 | GPL-2.0 |
| HAProxy 3.4 | TCP/HTTP 负载均衡器 | GPL-2.0 或更高 |
| Apache Traffic Server 10.2 | 大规模缓存代理(Apache 基金会) | Apache-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | Varnish Cache 8.0.0 | Nginx 1.30.6 | Squid 7.7 | HAProxy 3.4.0 | ATS 10.2.0 |
|---|---|---|---|---|---|
| 开源许可 | BSD-2-Clause | BSD-2-Clause | GPL-2.0 | GPL-2.0 或更高(头文件 LGPL-2.1) | Apache-2.0 |
| GitHub stars | 4045(归档仓库 varnishcache/varnish-cache) | 31914(nginx/nginx) | 约 3.1k(squid-cache/squid) | 约 6.9k(haproxy/haproxy) | 约 2k(apache/trafficserver) |
| 最近发版 | 8.0.0(2025-09-15)/补丁 8.0.2(2026-04-11);上游 Vinyl 9.1.0(2026-09-16) | 稳定版 1.30.6 / 主线 1.31.7(nginx.org 实查) | v7.7 tag(2026-08-24) | 3.4.0(2026-06-03,LTS 至 2031-Q2) | 10.2.0(2026-08-17,Latest Stable);9.2.15 LTS(2026-07-28) |
| 版本节奏 | 每 6 个月一次主版本;LTS 6.0 线持续支持 | 主线/稳定双轨 | 年度大版本+补丁 | 年度大版本,LTS 周期长 | 10.x 最新稳定 + 9.2 LTS |
| 缓存定位 | 专用内存加速缓存,VCL 可编程 | 内嵌 proxy_cache,缓存为附属能力 | 正/反向代理缓存,正向代理见长 | 负载均衡为核心,不做通用 HTTP 缓存 | 缓存代理为核心,面向大规模 CDN/边缘 |
| 典型场景 | 内容站点加速、源站卸载 | 一体化 Web 入口(站内已有专栏) | 企业上网代理、分级缓存 | LB 前置(可与 Varnish 组合) | Apache 生态 CDN/边缘节点 |
(stars 与发版时间取自各项目 GitHub Releases/官网实查:Nginx 版本取自 nginx.org/en/download.html,HAProxy 取自 haproxy.org 版本表,Squid 取自 GitHub tags 页,ATS 取自 trafficserver.apache.org/downloads;许可见各自仓库 LICENSE。)
7.3 如何选
目标就是"把缓存做到极致、卸载源站",且愿意投入学习 VCL 的,Varnish 仍是专用 HTTP 加速缓存的首选——但 2025-2026 年的更名与仓库迁移(Vinyl Cache / Varnish Cache 双线)要求选型时先锁定产品线与支持周期。若期望"一个组件同时承担 Web 服务、TLS、路由与缓存",Nginx 更省心,其 proxy_cache 可满足中低强度缓存需求(站内介绍见 《Nginx 1.30.6 介绍与选型指南》)。企业上网行为代理、协议级正向缓存与分级缓存体系,Squid 更对口。流量入口以负载均衡为核心、缓存需求次要的,选 HAProxy(站内见 《HAProxy 3.1 与 3.2 介绍与选型指南》),常见架构是 HAProxy 前置 TLS/LB、Varnish 居中缓存。Apache 生态、超大规模 CDN/边缘节点场景则评估 Apache Traffic Server(站内见 《Apache Traffic Server 10.2.0 介绍与选型指南》)。
八、参考链接
- Varnish Cache 官网:https://varnish-cache.org/
- Varnish Cache 发行表:https://varnish-cache.org/releases/index.html
- Vinyl Cache 官网:https://vinyl-cache.org/
- Vinyl Cache 发行表:https://vinyl-cache.org/releases/index.html
- Vinyl/Varnish 沿革说明:https://r.varnish-cache.org/organization/on_vinyl_cache_and_varnish_cache.html
- 安装文档(Docker/DEB/RPM/K8s):https://varnish-cache.org/docs/install-guide/
- 归档仓库(只读):https://github.com/varnishcache/varnish-cache
- Nginx 下载页:https://nginx.org/en/download.html
- Squid 仓库:https://github.com/squid-cache/squid
- HAProxy 官网:https://www.haproxy.org/
- Apache Traffic Server 下载页:https://trafficserver.apache.org/downloads