Итак, в настоящее время я разрабатываю коробку с Varnish 4, и мне любопытно, что такое нормальный (хотя, если все онлайн-примеры указывают на то, что он удаляет только известные файлы cookie) подход к файлам cookie? Удаляет ли он все файлы cookie и вносит в белый список известные файлы cookie? Это кажется немного более разумным, вот что мне любопытно. После просмотра https://www.varnish-cache.org/trac/wiki/VCLExampleRemovingSomeCookies в самом низу показывают, как удалить все, кроме НЕКОТОРЫХ (белый список), а потом прямо под заголовком говорят (осторожно - некрасиво).
Вот фрагмент:
sub vcl_recv {
if (req.http.Cookie) {
set req.http.Cookie = ";" + req.http.Cookie;
set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
set req.http.Cookie = regsuball(req.http.Cookie, ";(COOKIE1|COOKIE2)=", "; \1=");
set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");
if (req.http.Cookie == "") {
remove req.http.Cookie;
}
}
Во-первых, кто-то просто выбросил эту (предупреждение - не очень красиво) часть, потому что это не совсем оптимальная настройка или в смысле «эй, это будет кошмар, пытаясь принять пользовательские отчеты» или что-то в этом роде?
Второе, что меня интересует (подтверждение! :P), это буквально удалит все без исключения файлы cookie за пределами одного имени COOKIE1|COOKIE2, верно?
И последнее, что меня интересует в этом фрагменте, где COOKIE1|COOKIE2 (я не очень хорошо знаю регулярное выражение), означает ли это, что я могу заменить COOKIE1, скажем, на __bilbobaggins (настоящее имя файла cookie __bilbobaggins=1;134;onewasaring ), а затем COOKIE2 с 1_2_3__4_cookiename (настоящее имя файла cookie 1_2_3__4_cookiename=this,is,another,cookie), и это позволит им пройти без каких-либо регулярных выражений или чего-то еще для передачи фактических данных файла cookie?
Я, к сожалению, не думаю, что это так просто, хотя?
Кроме того, независимо от вышеописанного подхода, существует ли какой-либо синтаксис Varnish 4 лаклога, который я могу использовать для мониторинга ТОЛЬКО файлов cookie, которые попадают в серверную часть?