Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
1

Кеширование cookie в varnish cache

26.03.2016, 17:11. Показов 1219. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток(заранее прошу прощения за создание темы именно в этом разделе, не знаю куда это отнести). Проблема вот какая: установлен 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2016, 17:11
Ответы с готовыми решениями:

Как использовать кеширование данных (Cache)
Всем привет! Как использовать кеширование данных (Cache)? Дайте пример пожалуйста!

Ошибки Cannot send session cookie, Cannot send session cache limiter
Переустановил винду, поставил apache, старый конфиг подредактировал (поменял локальниный диск)....

На какой лучше поставить винду: WD 6400AAKS 640GB 16mb cache или UTANIA DF604RS 1TB 32mb cache ?
Имеется 2 жестака. 1) WD 6400AAKS 640GB 16mb cache 2) UTANIA DF604RS 1TB 32mb cache(покупался в...

Intel Dual Core 1,8 Ghz, 1 mb cache e2140 или Pentium 4 3,2 Ghz 2 mb cache 800mhz - что быстрее?
Что быстрее работает ? Intel Dual Core 1,8 Ghz, 1 mb cache e2140 или Pentium 4 3,2 Ghz 2 mb...

6
Эксперт PHP
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 Посмотреть сообщение
# в vcl_backend_response
unset beresp.http.set-cookie;
Jewbacabra, это я так вижу удалит вообще все из хидера Set-Cookie, а мне нужно конкретную куку грохнуть
0
Эксперт PHP
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
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Но только какой смысл вообще куки кешировать?
Я завтра попробую предложенный Вами метод. По поводу кеширование кук - в проекте изначально было так сделано что некоторые куки нужно кешировать варнишем, поэтому приходится подстраиваться

Добавлено через 17 часов 22 минуты
Jewbacabra, как Вы предложили (set resp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "log_customer_count=[1;]+(; )?", "") не работает... В cookie кука все-равно остается(В request headers ).
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
28.03.2016, 11:24 6
Цитата Сообщение от IvankoIP Посмотреть сообщение
В cookie кука все-равно остается
Это не куки, которые пришли в ответе, а те которые уже установлены. Их сначала нужно очистить. И вместо resp beresp
1
-3 / 2 / 2
Регистрация: 02.03.2015
Сообщений: 57
28.03.2016, 15:51  [ТС] 7
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Их сначала нужно очистить
Чистить их не вариант, она должна автоматически удалятся при закрытии браузера, но решение нашлось, короче во всем даже не варнишь был виноват Виноват был браузер, а именно хром. Если у хрома в настройках стоит что то типа продолжать с того же места после закрытия браузера. В этом случае он не закрывается а переходит в фоновый режим и сессийные куки( с временем жизни 0) не удаляются ) Вот тут подробнее про это: http://blog.petersondave.com/c... -Sitecore/
0
28.03.2016, 15:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2016, 15:51
Помогаю со студенческими работами здесь

Почему Cookie в куки заносится значение, а в другом файле Cookie пуста?
Здравствуйте подскажите что я не так делаю все вроде по примерам да ошибок как токавых нет.. но не...

Проблемы с передачей Cookie (очистка Cookie)
Всем привет! Кто нибудь пытался реализовать обмен с сайтом с авторизацией и сохранением Cookie?...

Свойства Response.Expires = 60 Response.Expiresabsolute = Now() - 1 Response.AddHeader 'pragma','no-cache' Response.AddHeader 'cache-control','p
Нашел в Инете строчки для запрета буфиризации и кэширования страници бравзером Response.Expires =...

Django csrf cookie --нужно определить в чем ошибка CSRF cookie not set
НУжна помощь в определений ошибки как исправить в папке Templates находится файл index.py...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru