我以前从未做过如此雄心勃勃的事情,所以请告诉我这是否是一个坏主意,以及我应该考虑的替代解决方案。
因此,我有三台服务器(以后还会有更多),所有托管站点都使用相同的 TLD。目前,我无法将子域和服务器关联起来。(由于订阅级别和预期性能不同等原因,有多个服务器。)
我的理想情况是:所有网络流量都会到达 Varnish 缓存,Varnish 会从托管网站的服务器缓存这些流量。我可以使用 Apache 或 Nginx 作为网络服务器,无论哪个更方便。
网络节点上总会创建新站点,因此我希望我的 Varnish 缓存知道哪个站点在哪里,而无需手动输入。(所有服务器都在 Debian 上。)
我一直在考虑使用 Puppetmaster 来实现这一点,但我找不到任何文档(也许我搜索错了?)。我也一直在考虑使用自定义守护进程,但这似乎是在重新发明轮子。
如果更方便的话,我可以使用 Nginx 作为缓存代理,Varnish 似乎在这种用例中更受欢迎。
谢谢
答案1
在 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