本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Varnish HTTP加速器容器镜像是一个基于Varnish的通用Docker镜像,用于实现HTTP缓存代理功能。Varnish作为高性能的HTTP加速器,通过缓存频繁访问的内容(静态资源、API响应等),显著减少后端服务器负载,提升Web应用的响应速度和吞吐量。该镜像旨在提供开箱即用的Varnish部署方案,支持自定义配置,适用于各类需要HTTP加速的Web场景。
从Docker Hub拉取最新版本镜像:
docker pull wodby/varnish:latest
如需指定Varnish版本(如7.4),可使用标签:
docker pull wodby/varnish:7.4
默认配置下,Varnish监听80端口,后端指向localhost:8080,缓存内存为128M:
docker run -d --name varnish -p 80:80 wodby/varnish:latest
通过环境变量指定后端服务器、缓存内存大小:
docker run -d --name varnish \ -p 80:80 \ -e VARNISH_BACKEND_HOST=webapp \ # 后端服务器主机名/IP -e VARNISH_BACKEND_PORT=3000 \ # 后端服务器端口 -e VARNISH_STORAGE_SIZE=512M \ # 缓存内存大小(支持M/G单位) wodby/varnish:latest
创建docker-compose.yml,集成Varnish与后端Web服务(如Nginx):
version: '3.8' services: varnish: image: wodby/varnish:latest ports: - "80:80" environment: - VARNISH_BACKEND_HOST=web - VARNISH_BACKEND_PORT=80 - VARNISH_STORAGE_SIZE=1G - VARNISH_VCL_CONF=/etc/varnish/default.vcl # 自定义VCL文件路径 volumes: - ./varnish/default.vcl:/etc/varnish/default.vcl # 挂载本地VCL文件 depends_on: - web web: image: nginx:alpine volumes: - ./web:/usr/share/nginx/html # 后端静态资源
| 环境变量 | 描述 | 默认值 | 
|---|---|---|
| VARNISH_BACKEND_HOST | 后端服务器主机名或IP | localhost | 
| VARNISH_BACKEND_PORT | 后端服务器端口 | 8080 | 
| VARNISH_STORAGE_SIZE | 缓存存储大小(支持 M/G单位) | 128M | 
| VARNISH_PORT | Varnish监听端口 | 80 | 
| VARNISH_VCL_CONF | VCL配置文件路径(容器内路径) | /etc/varnish/default.vcl | 
| VARNISH_LOG_LEVEL | 日志级别( debug/info/warning) | info | 
Varnish通过VCL(Varnish Configuration Language)定义缓存策略,默认VCL文件路径为/etc/varnish/default.vcl。如需自定义缓存规则,可挂载本地VCL文件至容器内VARNISH_VCL_CONF指定路径。
示例:自定义VCL文件(default.vcl)
vcl 4.1; # 定义后端服务器(可通过环境变量动态替换) backend default { .host = "${VARNISH_BACKEND_HOST}"; .port = "${VARNISH_BACKEND_PORT}"; } # 收到客户端请求时执行 sub vcl_recv { # 对静态资源(.js/.css/.png等)设置较长缓存 if (req.url ~ "(?i)\.(jpg|jpeg|png|gif|ico|css|js)$") { set req.ttl = 1h; # 缓存1小时 return (hash); } # 对API路径(/api/*)不缓存 if (req.url ~ "^/api/") { return (pass); # 直接转发至后端 } } # 缓存命中时执行 sub vcl_hit { if (obj.ttl > 0s) { return (deliver); } return (miss); } # 缓存未命中时执行 sub vcl_miss { return (fetch); }
挂载自定义VCL:
通过-v参数将本地default.vcl挂载至容器:
docker run -d --name varnish \ -p 80:80 \ -e VARNISH_BACKEND_HOST=webapp \ -e VARNISH_VCL_CONF=/etc/varnish/custom.vcl \ -v $(pwd)/default.vcl:/etc/varnish/custom.vcl \ wodby/varnish:latest
Varnish日志默认输出至容器stdout,可通过docker logs查看:
docker logs -f varnish
Varnish提供varnishstat工具查看缓存命中率、请求量等指标,可通过docker exec执行:
docker exec -it varnish varnishstat
docker exec -it varnish service varnish restart
docker exec -it varnish varnishreload
docker exec -it varnish sh
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429