Вот что я сделал, чтобы решить эту проблему:
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;
}
}