我在他们自己的子域上有4个Nginx驱动的图像服务器,用户可以随机访问.我决定将它们全部置于HAProxy负载均衡器之后,以提高可靠性并从单个位置查看流量统计信息.这似乎是一个明智的选择.
不幸的是,由于负载均衡器的100mbit端口已完全饱和,现在所有请求都通过它,因此移动完全失败.
我想知道该怎么办 – 我可以获得端口升级($$)或返回4个随机访问的独立图像服务器.我想过将HAProxy放在每个图像服务器上,如果该服务器的Nginx服务出现问题,它将依次路由到另一个图像服务器.
你会怎么做?我不想花太多额外的钱.
最佳答案
无论什么打破你的Nginx(过载,硬件缺陷)可能也会打破你的haproxy.最好是为每个服务器获取一个额外的IP(在接口上用作别名),并将其用作通过图像URL公布的IP(直接或通过dns名称).构建一个脚本,以便在出现严重问题时将辅助IP重定位到另一台服务器.细节中的恶魔将确保IP安全地从其他服务器上拿走.如果脚本无法再登录到故障服务器并取消分配IP别名,最好的办法是通过IPMI将其关闭(如果可用).
作为替代方案,您可以在第四台服务器上安装一些CGIish,它只是重定向到随机选择的可用服务器;使用定期监视脚本控制它可以重定向到的服务器列表(例如,你可以滥用nagios check_http).作为扩展,该脚本还可以接受来自另一个文件的排除列表 – 如果您需要静默其中一个服务器进行维护,则非常方便.
此外,关于使用CDN的建议并不是误导….如果您的静态文件流量饱和了100MBit线路,那么根据使用模式,您正在谈论每月数十TB到几十TB的流量……