HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
本文的使用场景和架构如下:
公司为数百的客户提供服务,使用人数数百至数万不等。使用haproxy作前端的负载服务器,提供TCP层的转发,http层的流量则全部转发到nginx作代理分发。
于是,在监听80端口后,有以下配置:
...... # 其它配置略 default_back nginx_proxy;
nginx服务器只有1台,使用了81端口。每隔一段时间(1个小时左右),haproxy就异常退出,重复多次。
然后分析原因,可能是某个后台网站异常不能访问,导致haproxy在健康检查后将nginx服务器标记为不可用,而default_back
的不可用导致了haproxy无法正常工作。
解决方案:
1、后端使用多台nginx服务器(效果更好,但配置文件可能不好管理)
2、一台nginx服务器使用多个端口号(伪负载)
3、haproxy里配置多个server,只启用一台服务器的健康监测(如果有多台服务器可以都开启,只有一台的话不要开启)
最后总结一下,haproxy作代理服务器时,转发效率非常高,比nginx要好很多,尤其是访问量大的网站。nginx适合多台服务器均衡负载和提供web服务。

新逸IT技术
扫一扫关注微信公众号
评论