varnish, apache и виртуальный хост на базе имен с собственными IP-адресами

#apache #varnish

#apache #varnish

Вопрос:

У меня есть веб-сервер apache2 с несколькими виртуальными хостами на основе имен; у каждого хоста есть свой собственный ip-адрес, поэтому apache прослушивает не *: 80, а 123.456.789.012:80.

Теперь я хочу кэшировать веб-сайты с помощью varnish. Я нашел несколько howto, либо хосты на основе ip (прослушивание на *: 80), либо хосты на основе имен только с одним IP-адресом.

Как мне настроить свой varnish, чтобы он работал с моей конфигурацией apache2?

Ответ №1:

Вам понадобится один серверный сервер на IP, а затем отправьте каждое имя хоста нужному серверному серверу.

Пример :

 backend Site1 {
    .host = "123.456.789.001";
    .port = "80";
}

backend Site2 {
    .host = "123.456.789.002";
    .port = "80";
}

sub vcl_recv {
    if (req.http.Host == "www.site1.com") {
        set req.backend Site1
    } elseif (req.http.Host == "www.site2.com") {
        set req.backend Site2
    } elseif
}
  

(Не уверен в синтаксисе серверной части, поскольку я использую только directors)