-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
|
|
1 | |
Кеширование cookie в varnish cache26.03.2016, 17:11. Показов 1219. Ответов 6
Метки нет (Все метки)
Всем доброго времени суток(заранее прошу прощения за создание темы именно в этом разделе, не знаю куда это отнести). Проблема вот какая: установлен varnish cache. По задаче нужно выставлять cookie на клиенте с временем жизни "пока не закроется браузер", как только браузер закрылся и открылся нужно заново выставить cookie. Но проблема в том что varnish cache кеширует в хидере эту мою cookie и постоянно передает её на сервер и не важно есть эта кука в браузере или нет. Подскажите если кто-то знает методы полного удаления куки из варниша.
Пробовал вот редактировать default.vcl варниша в теге sub vcl_recv так : if (req.http.Cookie || req.http.Cookie ~ "log_customer_count=1" || req.http.Cookie ~ " log_customer_count=1") { std.collect(req.http.Cookie); set req.http.Cookie = regsuball(req.http.Cookie, "log_customer_count=[1;]+(; )?", ""); set req.http.Cookie = regsuball(req.http.Cookie, " log_customer_count=[1;]+(; )?", ""); return(pass); } (log_customer_count=1 где log_customer_count - название куки, 1 - значение куки) Но это не дало результата, кука все равно остается в хидере cookie и не удаляется из варниша.
0
|
26.03.2016, 17:11 | |
Ответы с готовыми решениями:
6
Как использовать кеширование данных (Cache) Ошибки Cannot send session cookie, Cannot send session cache limiter На какой лучше поставить винду: WD 6400AAKS 640GB 16mb cache или UTANIA DF604RS 1TB 32mb cache ? Intel Dual Core 1,8 Ghz, 1 mb cache e2140 или Pentium 4 3,2 Ghz 2 mb cache 800mhz - что быстрее? |
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
26.03.2016, 18:36 | 2 |
Код
# в vcl_backend_response unset beresp.http.set-cookie;
1
|
-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
|
|
27.03.2016, 13:49 [ТС] | 3 |
Jewbacabra, это я так вижу удалит вообзе все из хидера Set-Cookie, а мне нужно конкретную куку грохнуть
Добавлено через 34 минуты Jewbacabra, это я так вижу удалит вообще все из хидера Set-Cookie, а мне нужно конкретную куку грохнуть
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
27.03.2016, 14:05 | 4 |
Все точно также, только req.http.Cookie меняется на beresp.http.set-cookie, beresp.http.cookie
Код
set resp.http.set-cookie = regsuball(beresp.http.set-cookie, "log_customer_count=[1;]+(; )?", ""); set resp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "log_customer_count=[1;]+(; )?", ""); }
1
|
-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
|
|
28.03.2016, 08:34 [ТС] | 5 |
Я завтра попробую предложенный Вами метод. По поводу кеширование кук - в проекте изначально было так сделано что некоторые куки нужно кешировать варнишем, поэтому приходится подстраиваться
Добавлено через 17 часов 22 минуты Jewbacabra, как Вы предложили (set resp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "log_customer_count=[1;]+(; )?", "") не работает... В cookie кука все-равно остается(В request headers ).
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
28.03.2016, 11:24 | 6 |
Это не куки, которые пришли в ответе, а те которые уже установлены. Их сначала нужно очистить. И вместо resp beresp
1
|
-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
|
|
28.03.2016, 15:51 [ТС] | 7 |
Чистить их не вариант, она должна автоматически удалятся при закрытии браузера, но решение нашлось, короче во всем даже не варнишь был виноват Виноват был браузер, а именно хром. Если у хрома в настройках стоит что то типа продолжать с того же места после закрытия браузера. В этом случае он не закрывается а переходит в фоновый режим и сессийные куки( с временем жизни 0) не удаляются ) Вот тут подробнее про это: http://blog.petersondave.com/c... -Sitecore/
0
|
28.03.2016, 15:51 | |
28.03.2016, 15:51 | |
Помогаю со студенческими работами здесь
7
Почему Cookie в куки заносится значение, а в другом файле Cookie пуста? Проблемы с передачей Cookie (очистка Cookie) Свойства Response.Expires = 60 Response.Expiresabsolute = Now() - 1 Response.AddHeader 'pragma','no-cache' Response.AddHeader 'cache-control','p Django csrf cookie --нужно определить в чем ошибка CSRF cookie not set Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |