这种情况是我想添加两个具有相同名称的标题,但处理来自后端服务器的响应时不同的值。更确切地说,在某些情况下,我希望将另一个Set-Cookie头附加到(不设置)另一个来自我的Apache服务器的原始响应,以最终将两个Cookie返回给客户端。看起来“设置”操作覆盖了所有出现的相同标题。将值附加到beresp中的set-cookie标头。在光油2.1
这可能吗?
这种情况是我想添加两个具有相同名称的标题,但处理来自后端服务器的响应时不同的值。更确切地说,在某些情况下,我希望将另一个Set-Cookie头附加到(不设置)另一个来自我的Apache服务器的原始响应,以最终将两个Cookie返回给客户端。看起来“设置”操作覆盖了所有出现的相同标题。将值附加到beresp中的set-cookie标头。在光油2.1
这可能吗?
您可以使用regsub()或regsuball()来处理HTTP标头。
https://www.varnish-cache.org/docs/2.1/reference/vcl.html
编辑: 了我的头顶部,它应该类似于以下
set beresp.http.Set-Cookie = regsub(beresp.http.Set-Cookie, "^(.+)$", "\1; secure; httponly");
VCL没有明确的字符串连接运算符。但是,可以通过将值设置为变量来连接值:
set req.http._message = "one string", " a second string"
然后可以将其分配给其他值或使用。
你的具体情况,你应该能够做这样的事情:
if (some-condition) {
set beresp.http.Set-Cookie = beresp.http.Set-Cookie, "my second cookie";
}
你能提供来自Apache的一个饼干头的请求的例子吗? – nouney 2014-11-21 23:37:01