Лак: кэш только для определенного домена

Я был агрессивно настроен Google, но без везения.

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

Можно ли указать, какие веб-сайты по URL-адресу будут кэшироваться?

Спасибо

Ответы

Ответ 1

(отредактирован после комментария) Это req.http.host, поэтому в вашем файле vcl (например, default.vcl) выполните:

sub vcl_recv {
  # dont cache foo.com or bar.com - optional www
   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {
     pass;
   }
  # cache foobar.com - optional www
   if (req.http.host ~ "(www\.)?foobar\.com") {
     lookup;
   }
}

И в файле varnish3-vcl:

sub vcl_recv {
  # dont cache foo.com or bar.com - optional www
   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {
     return(pass);
   }
  # cache foobar.com - optional www
   if (req.http.host ~ "(www\.)?foobar\.com") {
     return(lookup);
   }
}

Ответ 2

Да,

В vcl_recv вы просто соглашаетесь с хостами, которые вы хотели бы не кэшировать и передавать. Что-то вроде этого (untested):

vcl_recv {
   # dont cache foo.com or bar.com - optional www
   if (req.host ~ "(www)?(foo|bar).com") {
     return(pass);
   }
}

Ответ 3

Для лака 4

заменить поиск хешем

default.vcl:

sub vcl_recv {
  # dont cache foo.com or bar.com - optional www
   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {
     return(pass);
   }
  # cache foobar.com - optional www
   if (req.http.host ~ "(www\.)?foobar\.com") {
     return(hash);
   }
}