У меня есть 2 лака, каждый из которых имеет 2 бэкэнда (одинаковые версии лака -v4.x- и файл конфигурации).
Входящие клиентские соединения случайным образом распределяются по любому доступному лаку.
Мне нужно, чтобы клиенты всегда использовали один и тот же бэкэнд с лаком в зависимости от их исходного IP-адреса (за исключением, конечно, неудачного бэкэнда).
Я использую следующее (упрощенное) конфигурация:
new servers = directors.hash();
servers.add_backend(srv01, 1.0);
servers.add_backend(srv02, 1.0);
sub vcl_recv {
set req.backend_hint = servers.backend(client.ip);
}
Я хотел бы знать, гарантирует ли алгоритм хеширования, используемый Varnish, что независимо от того, через какой Varnish они проходят, клиенты всегда будут использовать один и тот же бэкэнд.
Это означает, что для инициализации алгоритма хеширования нельзя использовать случайные данные. Вы знаете, так ли это?
В hash
и shard
Директора будут выполнять хеширование на одних и тех же внутренних серверах, предполагая одинаковую конфигурацию и состояние выполнения (работоспособность внутренних серверов). Он использует sha256 без случайного компонента (кроме ключа хеширования).