Я никогда раньше не делал чего-то столь амбициозного, поэтому, пожалуйста, дайте мне знать, если это просто плохая идея, и альтернативные решения, которые я должен рассмотреть.
Итак, у меня есть три сервера (а позже и больше), все хостинговые сайты с одинаковым TLD. В его нынешнем виде я не могу связать поддомен и сервер. (Существует более одного сервера из-за разных уровней подписки, ожидаемой производительности и т. Д.)
Мой идеальный сценарий таков: весь веб-трафик попадает в кеш Varnish, а Varnish кэширует его с любого сервера, на котором размещен сайт. Я могу использовать Apache или Nginx для веб-серверов, в зависимости от того, что удобнее.
На веб-узлах всегда будут создаваться новые сайты, поэтому я хочу, чтобы мой кеш Varnish знал, где находится сайт, без необходимости вводить их вручную. (Все серверы находятся на Debian.)
Я подумывал об этом в Puppetmaster, но не могу найти никакой документации (может быть, я ищу не то?). Я также рассматривал возможность создания специального демона, но это похоже на изобретение колеса.
Я мог бы использовать Nginx в качестве кеширующего прокси, если это удобнее, Varnish кажется более популярным в этом случае.
Спасибо
Единственная ловушка, которую я могу предвидеть в Varnish, - это добавление новых серверов (бэкэндов) ... Varnish "нечувствителен к хостам", поэтому, учитывая, что все серверы могут обрабатывать запросы для всех хостов, у вас не будет никаких проблем.
Вы также можете использовать DNS-директор [1] (если вам не нужны проверки работоспособности), чтобы добавить сетевой диапазон (нотация cidr) внутренних серверов:
director directorname dns {
.list = {
.port = "80";
.connect_timeout = 0.4s;
"192.168.15.0"/3;
}
.ttl = 5m;
}
Вероятно, использование Puppet для такой установки - хорошая идея, но я думаю, вам понадобится специальный модуль для этого.
[1] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#the-dns-director