Я только начал читать о Varnish и подумываю использовать его в качестве интерфейса для моих веб-серверов. У меня есть несколько доменов на моем веб-сервере, которые получают один и тот же контент, когда используются одни и те же строки запроса. Допустим, один клиент посещает:
http://domain1.com/script.php?string1=abc&string2=123
А потом еще кто-то приходит:
http://domain2.com/script.php?string1=abc&string2=123
Будет ли Varnish кэшировать результаты первого посещения и использовать их для второго клиента? Спасибо!
РЕДАКТИРОВАТЬ: После некоторого чтения, похоже, может работать следующее:
sub vcl_hash {
set req.hash += req.url;
return (hash);
}
Поэтому вместо добавления переменной http.host в хеш он ее игнорирует.
Вы можете настроить его так, как бы. По умолчанию это не так (и не должно).
У меня есть сайт с множеством имен хостов, как мне уберечь их от увеличения кеша?
Вы можете сделать это, нормализовав заголовок «Host» для всех ваших имен хостов. Вот пример VCL:
if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }
У меня есть 3 домена на моей виртуальной машине, я использую Nginx и Varnish, в настоящее время я использую предварительную конфигурацию, вот что я делаю:
NGINX:80 ==> VARNISH:8080 ==> NGINX:8081
Я использую Nginx: 80 как прокси, ЕСЛИ домену нужен Varnish, в противном случае я использую материал FastCGI. В этом примере Varnish не касается сайтов, не относящихся к Varnish. Это выглядит глупо, но работает ;-) и никто из моих клиентов не жалуется (пока ....).