是新漆,不是HTTP新漆。抱歉,如果这是新手/明显的领域,但Google仍未透露答案。
当 Varnish 向esi include url请求时
vcl
配置文件以编程方式控制它。 也就是说,据我所知,esi包含在 Varnish 中的要点是允许将有状态信息填充到从缓存中拉出的页面中。应用程序使用 session ID(大概)来获取此有状态信息,该ID通常是通过Cookie中发送的数据来实现的。
我不清楚的是 Varnish 是否刚刚通过
而且,无论默认使用哪种 Varnish ,都可以在
vcl
文件中对其进行控制吗?(如果需要的话,一个PHP应用程序)
最佳答案
只是做了一些挖掘,似乎 cookie 被传递给了 ESI 请求。
ESI 请求也将由 varnish 处理。这允许您再次处理该特定 ESI 对象的所有请求 header 和缓存行为。
在 http://blog.lavoie.sl/2013/08/varnish-esi-and-cookies.html 我找到了下面的例子。这应该允许您为特定的 esi 请求取消设置/或保留 cookie。
sub vcl_recv {
if (req.esi_level > 0) {
# Backend may want to treat this request differently
set req.http.X-Esi-Level = req.esi_level;
if (req.url !~ "esi-cookies=1") {
unset req.http.cookie;
}
} else {
unset req.http.X-Esi-Level; # remove for security
}
}
sub vcl_fetch {
# Activate Edge Side Includes, but only if X-Esi header is present
if (beresp.http.X-Esi) {
set beresp.do_esi = true;
unset beresp.http.X-Esi; # remove header
}
}
关于php - Varnish ESI请求-发送了什么Cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30821508/