Varnish 8.0 介绍与选型指南

Varnish Cache 8.0 介绍与选型指南:官方资料溯源的 HTTP 加速缓存架构、VCL 配置语言、项目更名 Vinyl Cache 与仓库迁移的治理沿革、快速上手与适用限制,以及与 Nginx 缓存、Squid、HAProxy、Apache Traffic Server 的量化选型对比。

VarnishVarnish缓存2026/10/19

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.orgGitHub 仓库页归档声明、vinyl-cache.org 新闻
开源许可BSD-2-Clausevarnish-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-16Vinyl Cache 离开 GitHub(varnishcache/varnish-cache 归档只读),代码迁移至 code.vinyl-cache.org
2026-03-16Vinyl 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-16Vinyl 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.4TCP/HTTP 负载均衡器GPL-2.0 或更高
Apache Traffic Server 10.2大规模缓存代理(Apache 基金会)Apache-2.0

7.2 量化对比(2026-10-19 实查)

维度Varnish Cache 8.0.0Nginx 1.30.6Squid 7.7HAProxy 3.4.0ATS 10.2.0
开源许可BSD-2-ClauseBSD-2-ClauseGPL-2.0GPL-2.0 或更高(头文件 LGPL-2.1)Apache-2.0
GitHub stars4045(归档仓库 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 介绍与选型指南》)。

八、参考链接