我正在使用 Varnish 3 缓存来自使用 Edge Side Includes (ESI) 的 Web 应用程序的响应。
来自 ESI 端点的响应通常有两种类型:
- 有些是特定于身份验证的,因此使用响应
Vary: Cookie, Accept-Encoding
- 无论cookies如何,一些都会为所有用户缓存,因此响应
Vary: Accept-Encoding
(不因cookie而异)
所有请求都包含Cookie
带有各种 cookie 的标头。没有标头的请求以Cookie
响应Set-Cookie
。请注意,来自例如 Google Analytics 的 - 前缀 cookie 不是这种情况__
- 这些是由旧应用程序设置的 cookie,我无法更改此行为。
有没有办法*配置 Varnish 3 以记住来自各个 ESI 端点的响应不会因 cookie 而异,因此未来的请求应该Cookie
完全忽略标头并使用缓存的响应而不是从后端获取新的响应?
(*) 除了将 URI 硬编码到 Varnish 配置中之外,我正在寻找一种方法让 Varnish 尊重包含 cookieVary
的请求的无cookie 标头。