Назад | Перейти на главную страницу

Varnish и nginx (конфигурация VCL для нескольких сайтов)

У меня есть один VPS, обслуживающий 2 установки Wordpress. Использование Varnish> Nginx> PHP-FPM Прямо сейчас у меня есть это в папке conf.d nginx:

domain1.com.conf domain2.com.conf

Пример конфигурации для одного домена выглядит следующим образом:

server {
    server_name domain1.com www.domain1.com *.domain1.com;
    listen 127.0.0.1:81;
    expires max;
    root /home/domain1.com;

    index index.php;

Файл VCL по умолчанию для Varnish:

backend default {
  .host = "127.0.0.1";
  .port = "81";
  .connect_timeout = 600s;
    .first_byte_timeout = 600s;
    .between_bytes_timeout = 600s;
}

Все домены имеют одинаковое значение прослушивания 127.0.0.1:81.

Как сделать так, чтобы Varnish действительно обслуживал кешированную версию нужного домена?

Чтобы разделить кеш по имени домена, измените конфигурацию VCL следующим образом: добавьте это в подпрограмму vcl_hash:

для лака 2.1.x

if (req.http.host) {
 set req.hash += req.http.host;
}
else {
 set req.hash += server.ip;
}

для лака 3.х

if (req.http.host) {
 hash_data(req.http.host);
}
else {
 hash_data(server.ip);
}