首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Varnish缓存-缓存403响应

Varnish缓存-缓存403响应
EN

Stack Overflow用户
提问于 2015-05-15 21:41:28
回答 1查看 1.6K关注 0票数 1

我们在亚马逊网络服务的S3存储桶前使用了清漆,并且运行得非常好,因为我们已经有了98.4%的命中率,这为我们节省了非常大的S3账单!

我们的应用程序现在需要能够请求文件,这些文件可能还存在,也可能不存在。当发生这种情况时,Varnish将向S3发出请求,并收到403 (权限被拒绝)响应。我们在vcl_error函数中捕获该响应,因为它允许我们显示自定义的错误消息。由于我们预计每秒有400-500个请求,其中约40%是针对不存在的文件的,因此我们将遇到S3的成本问题。

我的问题是,有没有可能让Varnish记住文件返回403并返回缓存响应?我希望瓦尼什等待5分钟,然后再从后端请求文件。我们运行的是瓦尼什3。

我已经阅读了文档,它似乎建议我可以在vcl_error函数中使用"set obj.ttl = 5m;“,但这似乎不起作用。

谢谢!艾伦

EN

回答 1

Stack Overflow用户

发布于 2015-05-23 03:32:49

可以,您可以对其进行缓存。只需检查S3响应的状态码并设置ttl即可。

清漆3:

代码语言:javascript
运行
复制
sub vcl_fetch {
    if (beresp.status == 403 || beresp.status == 404 || beresp.status >= 500)
    {
        set beresp.ttl = 3s;
    }
}

清漆4:

代码语言:javascript
运行
复制
sub vcl_backend_response {
    if (beresp.status == 403 || beresp.status == 404 || beresp.status >= 500)
    {
        set beresp.ttl = 3s;
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30261005

复制
相关文章

相似问题

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