首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清漆直通路线

清漆直通路线
EN

Stack Overflow用户
提问于 2021-09-17 08:55:27
回答 1查看 95关注 0票数 0

我在我的应用程序前面设置了一个Varnish缓存。我希望一些路由不被缓存,但完全通过其他服务。我需要保留像X-Forwarded-For这样的头部,这样底层服务就不会注意到任何东西。

我尝试过“管道”配置,但它不能像我预期的那样工作。我正在寻找完整的配置部分。

我尝试过的Config是这样的:

代码语言:javascript
复制
backend blog {
    .host = "127.0.0.1";
    .port = "8083";
}

sub vcl_recv {
    if (req.url ~ "^/blog/") {
        set req.backend_hint = blog;
        return (pipe);
    } else {
        set req.backend_hint = default;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 09:14:29

您正在寻找的是return(pass),它不会提供来自缓存的内容,而是直接连接到后端。

只有当您不确定传入的请求是否是return(pipe)请求时,HTTP逻辑才有用。通过管道传输请求,您去掉了HTTP的所有概念,并将数据简化为普通的TCP。

多亏了return(pass),所有的头都被维护了。

以下是您的代码示例的更新版本:

代码语言:javascript
复制
vcl 4.1;

backend blog {
    .host = "127.0.0.1";
    .port = "8083";
}

sub vcl_recv {
    if (req.url ~ "^/blog/") {
        set req.backend_hint = blog;
        return (pass);
    } else {
        set req.backend_hint = default;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69220552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档