在部署多个EC2实例的过程中,通过Unicorn运行一个Rails应用程序。我目前有一个“前端”服务器运行nginx与多个"Unicorn“上游供应商。
晚上,我想关掉几台独角兽服务器,早上再启动一次(我工作得很好)。
我是否也应该删除/注释nginx中的上游提供程序,然后执行nginx配置加载?(为了阻止nginx试图将客户端发送到关闭的ec2实例)。
有更好的方法来处理这件事吗?(也许是HAproxy?)
发布于 2013-02-18 04:31:36
我认为实现这个目标的最简单方法之一是使用LVS。使用LVS,您可以创建一个虚拟服务器作为Nginx的后端,可能在每个Nginx本身的本地主机上。然后,您只需将Nginx指向LVS虚拟服务器的上游。Unicorns是LVS的后端,定义为服务器地址。
这样,通过一些cronjob从Virtual添加/删除后端应该非常容易,因为您可以通过简单的ipvsadm命令执行这些活动。
当然,也可以通过一些脚本从Nginx上游定义中添加/删除服务器,但我认为LVS解决方案更容易编写脚本,并且不太可能失败。
https://serverfault.com/questions/479817
复制相似问题