我想直接在应用程序中使用 etag 缓存/验证应用程序中的 eTag。如何将“If-None-Match”标头路由到后端?Varnish 似乎默认会删除此标头。
答案1
您可以将其重写为 varnish 不知道的不同标头,然后在后端读取该标头。
在 vcl_recv 的顶部,尝试:
set req.http.X-If-None-Match-Previously = req.http.If-None-Match;
然后读取应用程序中的 X-If-None-Match-Previously 标头。
我不确定这将如何与您的缓存交互,但如果 Varnish 从其后端请求中剥离它,它将传递标头数据。
答案2
好的,解决了:Varnish 不会删除 If-None-Match 标头。这只是我的 Web 应用程序在请求仍在传入时从缓存中提供的。Chrome 提供的是旧版本的页面。咳咳。咳咳。咳咳。