Лак с параметрами urlEncoded

113
16

Я новичок в Varnish, но я пытаюсь использовать его как обратный прокси. Everyting отлично, за исключением того, что когда приложение добавляет URL-адреса в запрос, он никогда не переходит на сервер.

Мы пытаемся удалить параметры из хеша, но это, похоже, не является источником наших проблем

sub vcl_hash {
hash_data(regsub(req.url, "\?.*", ""));
return (hash);
}

спросил(а) 2021-01-19T13:21:44+03:00 9 месяцев назад
1
Решение
66

Лучший способ выяснить, что происходит за кулисами с любым заданным запросом, - это запустить команду varnishlog для изучения ее вывода.

Что касается кода VCL, который вы вставляли, это говорит, что Varnish игнорирует параметры запроса (?a=b&c=d&e=f) для целей кеширования. Поэтому следующие URL-адреса будут ссылаться на один и тот же объект в кеше:

http://your.site/some_page.html
http://your.site/some_page.html?a=b&c=d&e=f
http://your.site/some_page.html?abc=xyz

Предполагая, что ответ кэшируемый, ваш бэкэнд будет видеть только запрос на первый такой URL-адрес, который он видит. Все последующие запросы (независимо от параметров запроса) будут обслуживаться непосредственно из кеша до истечения срока действия объекта кэша.

Вы упомянули параметры, закодированные по URL-адресу, но если у вас нет кода VCL, который специально касается октетов, кодированных% XX, они не должны влиять на то, как Varnish обрабатывает запрос.

ответил(а) 2021-01-19T13:21:44+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема