Nginx与HAProxy负载均衡比较

Nginx

  • 工作在网络7层,可以针对http应用做一些分流的策略,比如针对域名,目录结构
  • Nginx对网络的依赖较小,理论上能ping通就能进行敷在功能
  • Nginx安装配置比较简单,测试起来很方便
  • 也可以承担较高的负载压力且稳定,Nginx是为了解决c10k问题而诞生的
  • 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测
  • Nginx对请求的异步处理可以帮助节点服务器减轻负载压力
  • Nginx仅能支持http、https和Email协议,这样就在适用范围较小
  • 不支持Session的直接保持,但能通过ip_hash来解决,对Big request header的支持不是很
  • Nginx还能做Web服务器即Cache功能。

HAproxy

  • 支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机
  • 能够补充Nginx的一些缺点比如Session的保持,Cookie引导等工作
  • 支持url检测后端的服务器出问题的检测会有很好的帮助。
  • 更多负载均衡策略比如:动态加权轮循,加权源地址哈希,加权URL哈希加权等参数哈希已经实现。
  • 单纯从效率上来讲HAproxy更会比Nginx有更出色的负载均衡
  • HAproxy可以对MYsql进行负载均衡,对后端的DB节点进行检测和负载均衡
  • 支持负载均衡算法:轮循、带权轮循、源地址保持、请求URL、根据Cookie
  • 不能做Web服务器即Cache。
有用就打赏一下作者吧!