具有不同缓存的 Varnish Multi-Site 配置

Varnish Multi-Site configuration with varying caching

我有3组API的 这 3 个中的每一个都有独特的缓存要求。

因此第 1 组可以被缓存 "normally",因为 URL 很重要。

第 2 组要求通过身份验证 header,因此希望根据 header 和 url.

缓存它们

第 3 组根据 UserAgent 和 url

生成响应

现在我可以轻松地自己完成其中任何一个,但是因为所有 API 都是 "small" 我希望他们共享一个缓存系统并降低成本。

据我所知,在 varnishadm 中使用多个 vcl 和 vcl.load 将允许我为每个指定自定义 vcl_hash(以及其他)。或者是否有更好的解决方案,因为大量的 if 语句看起来很糟糕。

如果我使用 vcl.load 有没有办法让清漆在启动时自动执行此操作,以便服务器可以在 auto-scaling 组中? (目前正在使用 systemctl)

干杯

您似乎在寻找 VCL 标签。请查看 https://varnish-cache.org/docs/trunk/users-guide/vcl-separate.html or https://info.varnish-software.com/blog/one-vcl-per-domain 文档和一些示例。