- 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 Down 掉,能自动剔除 。
- Weight:指定轮询几率,Weight 和访问比率成正比,用于后端服务器性能不均的情况 。
- IP_Hash:每个请求按访问 IP 的 Hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 Session 的问题 。
- Fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配 。
- URL_Hash(第三方):按访问 URL 的 Hash 结果来分配请求,使每个 URL 定向到同一个后端服务器,后端服务器为缓存时比较有效 。
- 跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有 windows 的移植版本 。
- 配置异常简单:非常容易上手 。配置风格跟程序开发一样,神一般的配置 。
- 非阻塞、高并发连接:官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2~3 万并发连接数 。
- 事件驱动:通信机制采用 Epoll 模型,支持更大的并发连接 。
- Master/Worker 结构:一个 Master 进程,生成一个或多个 Worker 进程 。
- 内存消耗小:处理大并发的请求内存消耗非常小 。在 3 万并发连接下,开启的 10 个 Nginx 进程才消耗 150M 内存(15M*10=150M) 。
- 内置的健康检查功能:如果 Nginx 代理的后端的某台 Web 服务器宕机了,不会影响前端访问 。
- 节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头 。
- 稳定性高:用于反向代理,宕机的概率微乎其微 。
- Nginx 仅能支 持 HTTP、HTTPS 、TCP、 Email 等协议,这样就在适用范围上面小些,这个是它的缺点 。
- 对后端服务器的健康检查,只支持通过端口来检测,不支持通过 URL 来检测 。不支持 Session 的直接保持,但能通过 IP_Hash 来解决 。
HAProxy 支持两种代理模式 TCP(四层)和 HTTP(七层),也是支持虚拟主机的 。
HAProxy 的优点能够补充 Nginx 的一些缺点,比如支持 Session 的保持,Cookie 的引导;同时支持通过获取指定的 URL 来检测后端服务器的状态 。
HAProxy 跟 LVS 类似,本身就只是一款负载均衡软件;单纯从效率上来讲 HAProxy 会比 Nginx 有更出色的负载均衡速度,在并发处理上也是优于 Nginx 的 。
HAProxy 支持 TCP 协议的负载均衡转发,可以对 MySQL 读进行负载均衡,对后端的 MySQL 节点进行检测和负载均衡,大家可以用 LVS+Keepalived 对 MySQL 主从做负载均衡 。
HAProxy 负载均衡策略非常多:
- Round-Robin(轮循)
- Weight-Round-Robin(带权轮循)
- Source(原地址保持)
- RI(请求 URL)
- RDP-Cookie(根据 Cookie)
- 钟武:https://zhongwuzw.github.io
- 王晨纯:http://www.importnew.com/11229.html
- 周旭龙:http://edisonchou.cnblogs.com
推荐阅读
- Redis不只是缓存,还有n多种你没发现的妙用
- Java中equals和==的区别,你知道吗?
- 关于龙鱼的风水你知道多少
- 茶具艺术你懂多少
- 为什么洗澡时总想“小便”?这些原因你可能不知道,涨知识了
- 智能电视主要接口你了解吗
- 从鹅厂人的答辩故事,教你做晋级汇报
- 常吃花生瓜子,等于喝油?对身体是好是坏?文章告诉你正确答案
- 通篇都是干货——那些你想了解的汽修行业不为人知的“内幕”
- 人脸识别技术升级 戴着口罩也能认出你