我需要从清漆的后端响应中删除特定的 cookie。
我的后端服务器设置了一堆我不需要的 cookie,不幸的是我无法控制,所以我想删除它们。
但是我需要一些 cookie,所以我希望能够按其名称删除 cookie。
例如,我想重命名一个名为 bad_cookie 的 cookie,但同时保留一个名为 good_cookie 的 cookie。
我找到了很多关于删除特定请求 cookie 的资源,但没有找到关于删除后端响应 cookie 的资源。
这在 Varnish 中可行吗?
我需要从清漆的后端响应中删除特定的 cookie。
我的后端服务器设置了一堆我不需要的 cookie,不幸的是我无法控制,所以我想删除它们。
但是我需要一些 cookie,所以我希望能够按其名称删除 cookie。
例如,我想重命名一个名为 bad_cookie 的 cookie,但同时保留一个名为 good_cookie 的 cookie。
我找到了很多关于删除特定请求 cookie 的资源,但没有找到关于删除后端响应 cookie 的资源。
这在 Varnish 中可行吗?
如果你想重命名我认为它会是这样的:
sub vcl_fetch {
#renamed after receiving the backend
set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, "bad_cookie", "good_cookie");
set beresp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "good_cookie"); }
}
sub vcl_deliver {
#renamed before sending the client
set resp.http.set-cookie = regsuball(beresp.http.set-cookie, "bad_cookie", "good_cookie");
set resp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "good_cookie"); }
}
如果您想删除所有cookie:
sub vcl_fetch {
#deleted after receiving the backend
remove beresp.http.set-cookie;
remove beresp.http.cookie;
}
sub vcl_deliver {
#deleted before sending the client
remove resp.http.set-cookie;
remove resp.http.cookie;
}
beresp.http.set-cookie
只读取第一个 Set-Cookie header,如果你想删除一些并保留其他的可以使用:github.com/varnish/libvmod-header **