Настроить Varnish 4 нескольких доменов разных портов - PullRequest
0 голосов
/ 11 ноября 2018

Я получил это, чтобы загрузить оба сайта, однако я не могу войти на оба сайта WordPress.

backend websiteone {
    .host = "127.0.0.1";
    .port = "7070";
}
backend websitetwo {
    .host = "127.0.0.1";
    .port = "2082";
}
    sub vcl_recv {
    if (req.http.host ~ "^(.*\.)?websiteone\.com$") {
    set req.backend_hint = websiteone;
    return (hash);
}
    if (req.http.host ~ "^(.*\.)?websitetwo\.com$") {
    set req.backend_hint = websitetwo;
    return (hash);
    }
}

1 Ответ

0 голосов
/ 24 ноября 2018

Вот что я сделал, чтобы решить эту проблему:

mkdir /etc/varnish/sites-enabled

cd /etc/varnish/sites-enabled

nano siteone.com.vcl

sub vcl_recv {
    if (req.http.host == "siteone.com") {
        if (req.url ~ "/(cart|my-account|checkout|addons|/?add-to-cart=)") {
        return (pass);
        }
    }
}

nano sitetwo.com.vcl

backend sitetwo {
    .host = "127.0.0.1";
    .port = "2082";
}

sub vcl_recv {
       if (req.http.host == "sitetwo.com") {
           set req.backend_hint = sitetwo;
    }
}

Тогда мне пришлось отредактировать /etc/varnish/default.vcl

cd /etc/varnish/

nano default.vcl

Бэкэнд настроен для sitetwo, как вы можете видеть выше, но бэкэнд для siteone настроен в default.vcl, поэтому я изменил

backend default {
    .host = "127.0.0.1";
    .port = "7070";
}

И добавил эти две строки в конец default.vcl

 include "sites-enabled/siteone.com.vcl";
 include "sites-enabled/sitetwo.com.vcl";

Кажется, теперь все работает правильно! И если мне нужно добавить еще сайты, все, что мне нужно сделать, это создать sitetree.com.vcl в папке / sites-enabled и вставить

backend sitethree {
    .host = "127.0.0.1";
    .port = "port number";
}

sub vcl_recv {
       if (req.http.host == "sitethree.com") {
           set req.backend_hint = sitethree;
    }
}

Примечание: Siteone работает на сайте электронной коммерции, поэтому, если у вас нет магазина, вы можете просто использовать следующее на siteone.com.vcl

sub vcl_recv {
       if (req.http.host == "siteone.com") {
           set req.backend_hint = siteone;
    }
}
...