• haproxy实验


    一、什么是Haproxy集群

    Haproxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及==基于TCP和HTTP==的应用程序代理。

    二、Haproxy的特性

    -可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美 -最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s -支持多达8 种负载均衡算法,同时也支持会话保持 -支持虚拟主机功能,从而实现web负载均衡更加灵活 -支持连接拒绝、全透明代理等独特功能 -拥有强大的ACL支持,用于访问控制 -其独特的弹性二叉树数据结构,使数据结构的复杂性上升到了0(1),即数据的查询速度不会随着数据条目的增加而速度有所下降 -支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源量费,让多个请求在一个tcp连接中完成 -支持TCP加速,零复制功能,类似于mmap机制 -支持响应池(response buffering) -支持RDP协议 -基于源的粘性,类似于nginx的ip_hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器 -更好统计数据接口,其web接口显示后端冀全中各个服务器的接受、发送、拒绝、错误等数据的统计信息 -详细的健康状态检测,web接口中有关对上流服务器的健康检测状态,并提供了一定的管理功能 -基于流量的健康评估机制 -基于http认证 -基于命令行的管理接口 -日志分析器,可对日志进行分析

    三、Haproxy nginx lvs的区别

    1)LVS基于Linux操作系统实现软负载均衡,而Haproxy和Nginx是基于第三方应用实现的软负载均衡

    (2)LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而Haproxy和Nginx都可以实现4层和7层技术,Haproxy可提供TCP和Http应用的负载均衡综合解决方案(3)LVS因为工作在ISO模型的第四层,其状态监测功能单一,而Haproxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态监测方式

    (4)Haproxy功能强大,但整体性能低于4层模式的LVS负载均衡

    (5)Nginx主要用于web服务器或缓存服务器
     

    四、haproxy实验配置

    ⦁    实验条件
    ⦁    Haproxy:192.168.226.123
    ⦁    Nginx1:192.168.226.125
    ⦁    Nginx2:192.168.226.122
    ⦁    Tomcat1:192.168.226.124:8080
    ⦁    Tomcat2:192.168.226.129:8080
    ⦁    配置Haproxy:192.168.226.123
    ⦁    安装依赖包
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make
    ⦁    编译安装Haproxy
    解压安装包
    tar zxf haproxy-1.5.19.tar.gz
    cd haproxy-1.5.19/
    查看内核版本数(如果kernel大于2.6.28的用TARGET=linux2628)
    uname -r
    编译安装
    make TARGET=linux2628 ARCH=x86_64
    make install
     
    ⦁    配置服务器配置文件

    mkdir /etc/haproxy
    cp examples/haproxy.cfg /etc/haprox y/
    cd /etc/haproxy/
    编辑文件
    vim haproxy.cfg
    # this config needs haproxy-1.1.28 or haproxy-1.2.1
    global
            #log 127.0.0.1  local0
            #log 127.0.0.1  local1 notice
            log /dev/log    local1 info
            log /dev/log    local1 info
            maxconn 4096
            #chroot /usr/share/haproxy
            uid 99
            gid 99
            daemon
            nbproc 1
            #debug
            #quiet
    defaults
            log     global
            mode    http
            option  httplog
            option  dontlognull
            retries 3
            redispatch
            maxconn 2000
            #contimeout     5000
            #clitimeout     50000
            #srvtimeout     50000
            timeout http-request 10s
            timeout queue 1m
            timeout connect 10s
            timeout client 1m
            timeout server 1m
            timeout http-keep-alive 10s
            timeout check 10s
    listen  webjq 0.0.0.0:80
            option httpchk GET /index.jsp
            balance roundrobin
            server  ng1 192.168.226.125:8080  check inter 2000  fall 5
            server  ng2 192.168.226.122:8080  check inter 2000  fall 5
    ⦁    添加系统服务
    cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
    chmod +x /etc/init.d/haproxy
    chkconfig --add /etc/init.d/haproxy

    ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
    service haproxy start    或    /etc/init.d/haproxy start

    nginx安装

    ⦁     安装Nginx1:192.168.226.125 Nginx2:192.168.226.122
    ⦁    安装依赖包
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make
    ⦁    解压并编译安装
    tar -zxf nginx-1.12.2.tar.gz
    cd /opt#切换至解压后的目录下编译
    cd nginx-1.12.2
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module\
     --with-stream
    #安装
    make && make install -j4
    ⦁    创建软链接让系统识别并nginx命令并添加入服务
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
    将nginx命令并添加入服务
    cd /lib/systemd/system
    vim nginx.service

    #!/bin.bash
    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/bin/kill -s HUP $MAINPID
    ExecStop=/usr/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    ⦁    新建用户和组便于管理
    useradd -M -s /sbin/nologin nginx
    ⦁    启动并测试Nginx和Haproxy是否正常运行
    Nginx1
    echo "nginx1192.168.226.125" > /usr/local/nginx/html/index.html
    systemctl restart nginx.service
    Nginx2
    echo "nginx2192.168.226.122" > /usr/local/nginx/html/index.html
    systemctl restart nginx.service
    ⦁    测试集群是否成功
      

     

    nginx反向代理 

    ⦁    实验条件
    ⦁    Haproxy:192.168.226.123
    ⦁    Nginx1:192.168.226.125
    ⦁    Nginx2:192.168.226.122
    ⦁    Tomcat1:192.168.226.124:8080
    ⦁    Tomcat2:192.168.226.129:8080
    ⦁    配置Tomcat
    ⦁    配置nginx的Tomcat反向代理
     
    3.测试Nginx负载均衡

     

     

    实验结果

     

     

     


                  

     

  • 相关阅读:
    U盘格式化后 容量变小如何解决
    【MindInsight】【Summary】报错“Hyper config is not in system envi
    开启海外“新副本”,中旭未来有几道“关卡”要闯?
    JS 错误捕获
    【C++初阶】内存管理 && 初识模板
    人到中年,是安逸的活着还是再拼一把?
    计算机组成原理面试常问问题--保研及考研复试
    Linux(CentOS)安装msf
    CF1168C And Reachability
    andlua怎么判断软件是否运行
  • 原文地址:https://blog.csdn.net/weixin_52190986/article/details/126201982