• haproxy


    概念:

    Haproxy:他也是常用的负载均衡软件

    Nginx:支持四层转发(只能转发数据),七层转发(转发数据和协议)

    Haproxy:也可以四层和七层转发

    LVS的DR和nat是基于四层还是七层转发?

    答:四层转发

    Tun:四层加七层转发

    基于四层转发:

    1. LVS
    2. Nginx
    3. Haproxy

    基于七层:

    1. Nginx
    2. Haproxy

    Haproxy基于C语言开发的一个开源软件,可以支持一万以上的高并发发请求

    高性能的tcp和HTTP负载均衡器2.4  1.5.9

    Haproxy:主要用于高并发的web站点,工作原理和nginx一样,LVS一样

    支持的功能:

    1. tcp和http的反向代理
    2. https的代理配置
    3. 可以针对http请求添加cookie,转发到后端服务器(添加缓存)
    4. 也支持主备服务器的切换(keepalived)
    5. 基于端口的实时监控
    6. 压缩响应报文

    Haproxy的特点:

    1. 可靠性和稳定比较好,可以和硬件(f5 BIG)负载均衡的硬件设备相媲美
    2. 可以同时维护40000-50000个并发连接,单位时间内处理最大请求数20000个
    3. 支持8种负载均衡算法,但是haproxy不带缓存功能,但是可以支持会话保持
    4. 可以以支持配置虚拟主机

    Haproxy的负载均衡算法:

    1. roundrobin rr 轮询
    2. Static-rr wrr 加权轮询
    3. Leastconn 最小连接数
    4. Source 根据请求的源IP进行调度sh
    5. Uri 根据请求地址进行调度
    6. Url param 根据URL的参数进行调度
    7. Hdr(name) 表示根据http的请求头锁定每一次http的请求
    8. Rdp-cookie(name)表示根据cookie的名称来锁定每一次的请求

    LVS Nginx haproxy三者的区别

    1. LVS基于Linux内核来实现负载均衡,性能最高,但是对系统的硬件要求也比较高,haproxy和Nginx基于第三方应用实现负载均衡,性能较低,最低得出就是nginx
    2. LVS可以实现IP+端口的四层负载均衡,无法实现http请求的转发,haproxy和nginx都可以实现四层和七层的转发技术
    3. LVS只能实现四层转发,监测状态只能是单一的功能(监测端口)
    4. Haproxy可以实现端口,uri也可以
    5. Haproxy虽然功能强大,但是整体性能低于LVS Nginx的性能比haproxy低

      优先级:LVS---haproxy----Nginx(bug多,稳定性也差)

    1. Nginx主要应用还是提供web服务或者缓存服务器,nginx的stream模块upstream也可以支持集群,但是对节点的健康检测能力不足,没有LVS和haproxy的监控能力好

    Haproxy缺点:

    1. 单节点部署,单实例运行,代理服务器出现故障,整个负载集群全部不可用
    2. 是一个无状态的负载均衡器,没缓存,也没有会话保持,靠应用程序实现会话保持,状态不是保存在代理服务器,而在后端服务器,或者依靠cookie
    3. 日志问题:haproxy的日志比较简单,只能提供基本的请求日志错误,需要更高级的日志,人工自定义

    实验:

    1.实现七层

    先配置代理服务器

    创建软连接要用绝对路径,否则报错

    验证实验效果:

    为了实验效果,关闭keepalived,在Nginx配置文件中中注释掉

    第二个实验:http四层转发

    注释掉七层

    模拟节点故障

    恢复故障,依然运行正常

    日志存放路径

    写一个日志可检测脚本

    Rsyslog.d系统存放日志目录

  • 相关阅读:
    Ubuntu下Qt使用QProcess执行shell脚本并实时输出的标准方法
    dflow入门5——Big step & Big parameter
    穿越时空的创新:解析云原生与Web3.0的奇妙渊源
    Logstash:如何连接到带有 HTTPS 访问的集群
    springboot球类运动教学网站的设计与实现271611
    制作含有音频、视频的网页
    通过modbus与串口屏通讯控制
    应对数据爆炸时代,揭秘向量数据库如何成为AI开发者的新宠,各数据库差异对比
    torch.nn用法
    c语言必背100代码,C语言代码大全(c语言必背项目代码)
  • 原文地址:https://blog.csdn.net/wutong0824/article/details/134085842