我想将 Apache 2 设置为反向代理,使用基于名称的虚拟主机来决定如何将请求路由到后端服务器。很简单。
问题是这些后端服务器可以以动态方式添加和删除。我的第一个想法是以编程方式重写 Apache 配置文件,并apachectl graceful
在每次后端服务器启动或关闭时调用。这似乎不是正确的解决方案。有什么更好的方法来实现这一点?
我需要能够优雅地将名称处理转移到不同的后端服务器。例如,Backend-Server-A 可能正在处理 example.com 的请求。监控进程可能会确定 Backend-Server-A 已过时(内存使用量过多,有新版本的服务器代码来处理 example.com 等)。监控进程启动 Backend-Server-B,它将很快处理 example.com 的请求。Apache 应将 example.com 的任何新请求定向到 Backend-Server-B,但允许 Backend-Server-A 当前正在处理的任何未决请求在 Backend-Server-A 关闭之前完成。
更新:发布到服务器故障