Как кэш Varnish обрабатывает различные домены?

Как кэш Varnish обрабатывает различные домены?

Я только что начал читать о 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 в хэш он игнорирует ее.

решение1

Вы можете настроить его так, в некотором роде. По умолчанию он этого не делает (и не должен).

ОтFAQ/HowDoI по лаку

У меня есть сайт с большим количеством имен хостов. Как мне не допустить увеличения кэша?

Вы можете сделать это, нормализовав заголовок "Host" для всех ваших имен хостов. Вот пример VCL:

if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }

решение2

У меня на виртуальной машине 3 домена, я использую Nginx и Varnish, в настоящее время я нахожусь на предварительной конфигурации, вот что я делаю:

NGINX:80 ==> VARNISH:8080 ==> NGINX:8081

Я использую Nginx:80 как прокси, ЕСЛИ домену нужен Varnish, если нет, я использую FastCGI. В этом примере сайты без Varnish не касаются Varnish. Выглядит глупо, но работает ;-) и никто из моих клиентов не жалуется (пока...).

Связанный контент