Чтобы избежать создания одной резервной копии для каждого поддомена, я указываю универсальную строку регулярного выражения для каждого имени домена следующим образом:
backend domain1 {
.host = "10.10.10.5";
.port = "80";
}
backend domain2 {
.host = "10.10.10.6";
.port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(.*\.)?domain1\.com$") {
set req.backend = domain1;
}
if (req.http.host ~ "^(.*\.)?domain2\.com$") {
set req.backend = domain2;
}
}
Тем не менее, Varnish всегда будет показывать веб-сайт на первом поддомене (sub1.domain1.com), когда я пытаюсь получить доступ к domain2.com.
Все поддомены в domain1.com загружаются должным образом.
Мне не хватает какого-то параметра?
Попробуйте эту конфигурацию:
backend domain1 {
.host = "10.10.10.5";
.port = "80";
}
backend domain2 {
.host = "10.10.10.6";
.port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(.*\.)?domain1\.com$") {
set req.backend_hint = domain1;
}
if (req.http.host ~ "^(.*\.)?domain2\.com$") {
set req.backend_hint = domain2;
}
}