首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kubernetes中实现HTTP响应的缓存?

问如何在Kubernetes中实现HTTP响应的缓存?
EN

Server Fault用户
提问于 2022-03-24 10:48:28
回答 2查看 2.1K关注 0票数 2

如何在Kubernetes中缓存来自我的服务的HTTP响应?

我的集群中有一个简单的web服务,我想知道如何缓存静态资产(静态html、图像、字体等)。而不是依赖客户端缓存。

我的设置非常简单:

代码语言:javascript
复制
 ┌─────────────────┐    ┌─────────────┐   ┌─────────────────┐
 │                 │    │             │   │                 │
 │  ingress-nginx  ├────►     svc     ├───►   deployment    │
 │                 │    │             │   │                 │
 └─────────────────┘    └─────────────┘   └─────────────────┘

我已经考虑过的选择:

  • 外部CDN (如云彩)
    • 由于数据保护遵从性规则,=>排除了

  • 云提供商的CDN (例如Cloudfront)
    • 我们的云提供商=>没有这样的服务

  • 入口中的proxy_cache -nginx控制器&入口
    • =>看上去像…凌乱?

  • 在入口-nginx和我的服务之间的专用缓存服务(例如清漆)。
    • =>,这是个好主意吗?
    • =>是否有更多的“云本机”选择,而不是配置我自己的Varnish部署?

  • sidecar (例如或nginx)中的缓存代理
    • =>不理想,因为缓存荚必须与应用程序荚保持一致。

  • 应用程序中的缓存
    • =>,我更愿意把这个问题排除在应用程序之外。

我很好奇:人们是如何在集群中解决这个问题的?

EN

回答 2

Server Fault用户

发布于 2022-04-02 15:47:51

如何在Kubernetes中缓存来自我的服务的HTTP响应?

您始终可以通过nginx.ingress.kubernetes.io/server-snippet注释来设置自定义的nginx配置。为此,您可能需要添加几个与proxy_cache相关的配置。

如何缓存静态资产(静态html、图像、字体等)而不是依赖客户端缓存。

分离应用程序和静态资产。

用Kubernetes存储和运行应用程序,并将静态资产存储在支持公共文件访问的其他地方。

然后,您可以使用任何CDN将静态资产交付给您的客户,而不给您的Kubernetes应用程序增加负担。

票数 1
EN

Server Fault用户

发布于 2023-03-08 11:54:06

我们将K8s-入口,又名维京作为一个基于清漆的入侵控制器,它将入口控制器功能与清漆-缓存必须提供的任何东西集成在一起,缓存就是其中之一。

Viking默认使用内建VCL,所以如果您的服务生成适当的缓存-控制头,缓存就应该是开箱即用的。如果没有,则可以使用自定义VCL进行细粒度控制。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1096921

复制
相关文章

相似问题

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