/ / Lakierowanie jako pamięć podręczna przed wirtualnymi hostami apache - lakier, lakier-vcl

Lakierowanie jako pamięć podręczna przed wirtualnymi hostami Apache - lakier, lakier-vcl

Chciałbym skonfigurować lakier jako pamięć podręczną dla jednej z moich stron internetowych w celu tymczasowego dużego obciążenia.

Przygotowałem kilka maszyn wirtualnych z lakierem, który powinien buforować moją główną stronę. Ponieważ mój główny serwer obsługuje kilka witryn, serwer apache jest skonfigurowany jako serwer wirtualnego hosta.

Tak zdefiniowałem główną nazwę domeny witryny wdefault.vcl zamiast adresu IP, mając nadzieję, że lakier będzie prawidłowo propagował żądania do właściwego wirtualnego hosta apache. Ale wydaje się, że po prostu używa adresu IP i buforuje domyślną stronę apache, która pojawia się podczas wysyłania żądania http do adresu IP mojej głównej strony.

Czy istnieje sposób na skonfigurowanie lakieru, aby wywoływał mój backend przy użyciu właściwego adresu URL, a nie adresu IP: port?

moja konfiguracja lakieru wygląda tak:

backend default{
.host = "www.myvhost.com";
.port = "80";
}

zamiast :

backend default{
.host = "my.ip";
.port = "80";
}

ponieważ potrzebuję instancji lakierniczych: http://www1.myvhost.com, http://www2.myvhost.com ... aby buforować główny serwer http://www.myvhost.com ale nie http://myip:80/

Dzięki za pomoc

Odpowiedzi:

0 dla odpowiedzi № 1

Prawdopodobnie ean lakier jest odwrotnym proxy, a nie apache

Ponieważ mój główny serwer obsługuje kilka stron internetowych, serwer apache jest skonfigurowane jako odwrotne proxy.

Możesz skonfigurować swoją nazwę hosta w definicji backendu twojego default.vcl https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl

Cały ruch będzie wskazywał lakier na wszystkie twoje vhosty, z wyjątkiem sytuacji, gdy masz kilka adresów IP na swoim serwerze.

Myślę, że to, czego szukasz, to wyszukiwanie za pomocą pojedynczej domeny. Możesz to osiągnąć, filtrując na hoście.

sub vcl_recv {
if (req.http.host ~ "(www.)?yourdomain.com") {
return(pass);
}
}

Cały ruch spoza Twojej domeny zostanie przeniesiony bezpośrednio do backendu bez wyszukiwania