Рейтинг:0

Определение необходимости изменения конфигурации лака после добавления 3 новых файлов cookie

флаг mx
# Сохранить все эти файлы cookie
если (треб.http.Cookie) {
  установить req.http.Cookie = ";" + требуется http.Cookie;
  установить req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
  set req.http.Cookie = regsuball(req.http.Cookie, ";(location|usertype|просматриваемые продукты)=", "; \1=");
  установить req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
  установить req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");

  если (треб.http.Cookie == "") {
    отключить req.http.Cookie;
  }
}

У меня есть этот конфиг лака, и я добавил 3 новых файла cookie, так что мне нужно что-то менять? Насколько я понимаю, даже если я добавлю 3 новых куки, единственные куки, которые будут использоваться для определения того, какие кэшированные значения вы собираетесь получать от лака, определяются исключительно теми, которые вы храните в конфигах, поэтому они будут определяться местоположением. , тип пользователя и просмотренные товары. Поскольку у нас есть только 2 местоположения, 3 типа пользователей и 3 продукта, у нас не может быть более 332 18 различных значений кэша. Я прав?

Рейтинг:0
флаг in

Вы правы, добавление новых файлов cookie, которые не требуются для кэширования, не повлияет на вашу конфигурацию VCL.

Вывод Varnishlog

Если есть сомнения, используйте лаковое бревно. Вот команда, которую вы можете использовать для отслеживания поведения файлов cookie:

лаклог -g запрос -i ReqUrl -I ReqUnset:Cookie -I ReqHeader:Cookie

Эта команда будет отображать только URL-адрес запроса и различные строки журнала, в которых устанавливаются и сбрасываются значения файлов cookie.

Представьте, что вы отправляете следующий HTTP-запрос на ваш сервер Varnish:

curl -H "Cookie: foo=bar; location=test" http://localhost

Этот запрос отправляет 2 файла cookie в Varnish:

  • Неизвестный фу куки, которые должны быть удалены
  • место расположения cookie, который должен храниться

Вот вывод журнала:

* << Запрос >> 132325
- Требуемый URL /
- Куки ReqHeader: foo=bar; местоположение = тест
- ReqUnset Cookie: foo=bar; местоположение = тест
- Файл cookie ReqHeader: ;foo=bar; местоположение = тест
- ReqUnset Cookie: ;foo=bar; местоположение = тест
- Файл cookie ReqHeader: ;foo=bar;location=test
- ReqUnset Cookie: ;foo=bar;location=test
- Файл cookie ReqHeader: ;foo=bar; местоположение = тест
- ReqUnset Cookie: ;foo=bar; местоположение = тест
- Куки ReqHeader: ; местоположение = тест
- ReqUnset Cookie: ; местоположение = тест
- Куки-файл ReqHeader: location=test

Как видите, фу cookie красиво удаляется, в то время как место расположения cookie сохраняется.

Управление вариантами кеша

Я вижу, что вы пытаетесь держать под контролем количество вариаций кеша, что имеет смысл.

Проблема в том, что вредоносные запросы могут создавать нежелательные варианты кеша.

Если количество значений для одного файла cookie настолько ограничено, я предложил включить их в логику изменения кеша.

Используете ли вы значения файлов cookie в своем vcl_hash логика в этом? Или ты используешь Варьировать: печенье для этого?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.