You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何使用Varnish仅缓存网站首页及VCL配置写法

Varnish Cache入门及仅缓存首页配置指南

一、Varnish入门基础操作

1. 安装Varnish

根据你的操作系统选择对应命令:

  • Ubuntu/Debian:
    sudo apt update && sudo apt install varnish
    
  • CentOS/RHEL:
    sudo dnf install varnish
    

2. 启动并验证服务

启动服务:

sudo systemctl start varnish

设置开机自启:

sudo systemctl enable varnish

验证运行状态:

sudo systemctl status varnish

测试默认配置是否生效(访问本地Varnish代理):

curl -I http://localhost

二、仅缓存xyz.com首页的VCL配置

Varnish的核心配置文件默认路径为/etc/varnish/default.vcl,以下是针对你的需求编写的配置:

完整VCL代码

# 定义后端服务器(替换为你实际的网站IP或域名,端口一般是80/443)
backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

sub vcl_recv {
    # 只处理xyz.com的请求
    if (req.http.host != "xyz.com") {
        return (pass); # 非目标域名直接转发,不缓存
    }

    # 仅对首页(/)启用缓存
    if (req.url == "/") {
        # 标记为可缓存的请求
        return (hash);
    } else {
        # 其他页面直接转发,不缓存
        return (pass);
    }
}

sub vcl_backend_response {
    # 仅对首页设置缓存时长(这里设为1小时,可根据需求调整)
    if (bereq.url == "/") {
        set beresp.ttl = 1h;
        # 忽略后端返回的禁止缓存头部,强制缓存
        unset beresp.http.cache-control;
        set beresp.http.cache-control = "public, max-age=3600";
    }
}

sub vcl_deliver {
    # 在响应头添加缓存状态标识,方便调试
    if (obj.hits > 0) {
        set resp.http.X-Cache = "HIT";
        set resp.http.X-Cache-Hits = obj.hits;
    } else {
        set resp.http.X-Cache = "MISS";
    }
}

配置说明

  1. 后端定义:backend default里的.host和.port要替换成你实际网站的地址,比如你的网站运行在本地80端口就改成.port = "80"。
  2. 请求处理(vcl_recv):先判断域名是否为xyz.com,不是则直接转发;是则检查请求路径是否为首页,仅首页进入缓存流程。
  3. 后端响应处理(vcl_backend_response):对首页的响应设置缓存时长(1小时),同时覆盖后端可能返回的禁止缓存头部,确保缓存生效。
  4. 调试标识:vcl_deliver里添加的X-Cache头可以帮你判断请求是命中缓存(HIT)还是未命中(MISS),方便验证配置。

应用配置

修改完VCL后,重载配置使生效:

sudo systemctl reload varnish

或者使用Varnish自带的重载命令:

sudo varnishreload

验证缓存效果

用curl测试首页,查看响应头的X-Cache字段:

curl -I http://xyz.com

第一次请求应该显示X-Cache: MISS,再次请求则显示X-Cache: HIT,说明缓存生效。

内容的提问来源于stack exchange,提问作者Gourav gaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:25:24