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

Varnish с несколькими хостами / поддоменами

Я новичок в Varnish, и я надеюсь, что он уже делает это «из коробки», но я хотел бы уточнить, прежде чем рассматривать возможность его использования в производстве:

Вот моя установка:

  1. У меня есть несколько сайтов, работающих на одном компьютере, которые различаются в зависимости от субдомена (например, user1.example.com, user2.example.com и т. Д.)
  2. У каждого «сайта» есть изображение профиля с тем же именем (например, user1.example.com/profile.png, user2.example.com/profile.png).

Будет ли Varnish распознавать их как отдельные ресурсы и соответственно кэшировать их? Или мне нужно будет что-то изменить в VCL, чтобы он включал полный URL-адрес хоста при поиске попаданий в кеш?

Они будут кэшироваться отдельно из коробки.

Код по умолчанию для vcl_hash что это контролирует:

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

Как видите, имя хоста включается в хеш, если он существует, а если нет, включается IP-адрес сервера.