2014-01-30 2 views
0

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

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

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

ответ

1

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

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

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.

Смежные вопросы