Лак: кэш только для определенного домена
Я был агрессивно настроен 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);
}
}