应通过apt包管理器或添加varnish官方apt仓库安装;前者适用于uos v20+官方源已收录场景,后者适用于官方源无包或版本过旧场景,均需更新索引、安装软件、验证版本、检查配置并启用服务。

如果您在统信UOS系统上需要部署Varnish作为HTTP加速缓存服务,但系统默认软件源中未预置Varnish包或版本过旧,则需通过适配UOS Debian兼容体系的多种安装路径完成部署。以下是解决此问题的步骤:
一、APT包管理器安装(适用于UOS V20+官方源已收录Varnish的场景)
该方法直接调用统信UOS官方维护的Debian兼容软件源,安装经UOS团队测试验证的稳定版Varnish二进制包,自动处理依赖关系与基础服务注册,适合快速启用基础缓存功能。
1、更新本地APT索引并升级已安装软件包:
sudо apt update && sudo apt upgrade -y
2、安装varnish主程序及配套工具:
sudо apt install -y varnish varnish-dev
3、确认安装版本与二进制路径:
varnishd -V
4、检查默认VCL配置文件是否存在:
ls -l /etc/varnish/default.vcl
5、启动服务并设置开机自启:
sudо systemctl start varnish && sudo systemctl enable varnish
二、添加Varnish官方APT仓库安装(适用于UOS官方源无Varnish或版本低于6.0的场景)
该方法通过导入Varnish官方GPG签名密钥并配置packagecloud托管的Debian仓库,确保获取官方持续维护的较新稳定分支(如varnish70),避免因版本陈旧导致VCL语法不兼容或缺失健康探测等关键特性。
1、导入Varnish官方GPG密钥:
sudo apt-key adv --fetch-keys https://packagecloud.io/varnishcache/varnish70/gpgkey
2、创建官方源列表文件:
sudo tee /etc/apt/sources.list.d/varnishcache_varnish70.list deb https://packagecloud.io/varnishcache/varnish70/debian/ bookworm main
deb-src https://packagecloud.io/varnishcache/varnish70/debian/ bookworm main
EOF
3、更新APT索引并安装Varnish:
sudо apt update && sudo apt install -y varnish
4、修改系统监听端口为标准HTTP端口80:
sudo sed -i 's/-a :6081/-a :80/' /etc/default/varnish
5、重载systemd配置并重启服务:
sudо systemctl daemon-reload && sudo systemctl restart varnish
三、源码编译安装(适用于需启用调试符号、定制内存分配策略或离线环境部署)
该方法从Varnish官方GitHub仓库下载指定版本源码,在本地完成完整编译流程,支持精确控制--prefix安装路径、启用jemalloc内存管理器、关闭未使用模块以精简二进制体积,满足安全合规审计与硬件特性适配需求。
1、安装编译所需依赖工具链:
sudо apt install -y build-essential autoconf automake libtool pkg-config python3-docutils groff pcre2-utils libpcre2-dev libedit-dev libjemalloc-dev
2、创建专用构建目录并下载Varnish 7.4.2源码包:
sudo mkdir -p /opt/varnish-build && cd /opt/varnish-build
wget https://varnish-cache.org/_downloads/varnish-7.4.2.tgz
3、解压并进入源码根目录:
tar xzf varnish-7.4.2.tgz && cd varnish-7.4.2
4、执行配置脚本并指定安装路径与优化选项:
./configure --prefix=/usr/local/varnish --with-jemalloc --enable-debugging-symbols
5、编译并安装至目标路径:
make -j$(nproc) && sudo make install
6、创建必要目录结构并复制默认VCL模板:
sudo mkdir -p /etc/varnish /var/lib/varnish /var/log/varnish
sudo cp etc/example.vcl /etc/varnish/default.vcl
7、手动注册systemd服务单元文件:
sudo tee /etc/systemd/system/varnish.service [Unit]
Description=Varnish HTTP accelerator
Documentation=https://varnish-cache.org/docs/7.4/
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/varnish/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -s malloc,256m
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
8、重载服务配置并启用:
sudо systemctl daemon-reload && sudo systemctl start varnish && sudo systemctl enable varnish
四、后端代理配置与缓存验证
该步骤用于定义Varnish实际转发请求的目标Web服务器,并通过HTTP响应头注入X-Cache字段标识缓存命中状态,是验证部署是否生效的关键环节。
1、编辑默认VCL配置文件:
sudo nano /etc/varnish/default.vcl
2、在backend default区块中设置后端主机地址与端口:
.host = "192.168.30.27"; .port = "80";
3、在sub vcl_deliver函数中添加缓存状态标记:
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from UOS varnish";
} else {
set resp.http.X-Cache = "MISS from UOS varnish";
}
4、重新加载VCL配置(若使用systemd服务):
sudo varnishadm vcl.load boot /etc/varnish/default.vcl && sudo varnishadm vcl.use boot
5、向Varnish监听端口发起两次curl请求并比对响应头:
curl -I http://localhost/ | grep X-Cache









