Trabajando con cookies
En Transparent Edge Services implementamos Varnish Enterprise y por lo tanto puedes aprovechar todas las ventajas que esto supone.
En este caso implementamos el módulo cookieplus de Varnish.
Este módulo te permite interactuar con las cookies tanto de la request como de las respuesta. Podrás añadir, quitar, sacar el valor de la cabecera Cookie (req.http.Cookie) o incluso de la cabecera Set-Cookies (resp.http.Set-Cookie).
Todas las funciones mantienen un estado interno de la Cookie y el Set-Cookie hasta que lo liberes en la configuración mediante la función write() o setcookie_write().
Las operaciones con set-cookies solo puedes usarse donde los objetos resp o beresp esté disponible (vcl_deliver o vcl_backend_response)

Filtrado de cookies

1
sub vcl_recv
2
{
3
// Keep these Cookies
4
cookieplus.keep("JSESSIONID");
5
cookieplus.keep_regex("^BNES_SSESS");
6
cookieplus.keep_regex("^SSESS[a-zA-Z0-9]+quot;);
7
cookieplus.keep_regex("^SESS[a-zA-Z0-9]+quot;);
8
9
// Any Cookie that is not kept will be removed
10
cookieplus.write();
11
}
Copied!

Filtrado de set-cookies

1
sub vcl_backend_response
2
{
3
// Mark all Set-Cookies for removal
4
cookieplus.setcookie_keep("");
5
6
// Only allow these Set-Cookies if the URL allows for it
7
if (bereq.url ~ "^/admin") {
8
cookieplus.setcookie_keep("JSESSIONID");
9
cookieplus.setcookie_keep_regex("^BNES_SSESS");
10
cookieplus.setcookie_keep_regex("^SSESS[a-zA-Z0-9]+quot;);
11
cookieplus.setcookie_keep_regex("^SESS[a-zA-Z0-9]+quot;);
12
}
13
14
// Any Set-Cookie that is not kept will be removed
15
cookieplus.setcookie_write();
16
}
Copied!
Puedes encontrar una documentación completa del módulo cookieplus en este enlace de la documentación oficial de Varnish Enterprise.
Última actualización 3mo ago