haproxy的基本概念和实现负载均衡流程
更新:HHH   时间:2023-1-7


下文给大家带来haproxy的基本概念和实现负载均衡流程,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用天达云在行业内累计的经验做一个解答。

在80.100虚拟机上

systemctl stop firewalld   //关闭防火墙
setenforce 0   //关闭监控
yum install lrz* -y  //安装上传软件
tar xf haproxy-1.5.15.tar.gz -C /opt/       //解压压缩包到/opt/
cd /opt/haproxy-1.5.15/     //进入/opt/haproxy-1.5.15/ 
    yum install -y \
        pcre-devel \
    bzip2-devel \
    gcc \
    gcc-c++ \
    make
    uname -r

make TARGET=linux26  PREFIX=/usr/local/haproxy //标识64为系统
make install PREFIX=/usr/local/haproxy
mkdir /etc/haproxy     //创建目录
useradd -s /sbin/nologin -M  haproxy      //创建用户
id haproxy    //查看用户信息

cd examples/       //进入examples/
cp haproxy.cfg /etc/haproxy/     //拷贝到/etc/haproxy/ 
cd /etc/haproxy/            //进入cd /etc/haproxy/  
vi haproxy.cfg        //进入vi 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 loghost    local0 info      //定义haproxy 日志级别
        maxconn 4096   //可以接收的最大并发连接数
    #chroot /usr/share/haproxy   //工作目录
        uid 1001   //运行的程序用户 
        gid 1001    //运行的程序用户组
        daemon    //创建1个进程进入deamon模式运行,以后台形式运行harpoxy
        #debug
         #quiet

    defaults
        log     global   //定义日志,采用全局定义
        mode    http       //所处理的类别,tcp是四层,http是七层,health只会返回OK,若是混合模式则mode不需要设置
        option  httplog     //每次请求完毕后主动关闭http通道
        option  dontlognull    //不记录健康检查的日志信息
        retries 3
        redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

    listen admin_stats     //为haproxy访问状态监控页面配置,取名为admin_stats
    bind 0.0.0.0:8089      //监听端口
    stats enable         //启用监听端口
    mode http   //http的7层模式
    log global   // 继承global中log的定义
    stats uri  /stats   //监控页面的url访问路径,即http://ip/stats访问监控页面
    stats realm Haproxy\ Statistics    //监控页面的密码框提示信息
    stats auth  admin:admin    //监控页面的用户和密码admin,可以设置多个用户名
         #stats hide-version   //隐藏统计页面上HAProxy的版本信息
        stats admin if TRUE    //当通过认证才可管理
    stats refresh 30s    //页面自动刷新时间30s
        :wq     //保存退出
cd -
cp haproxy.init /etc/init.d/haproxy     //拷贝到/etc/init.d/haproxy
ll /etc/init.d/haproxy      //查看这个文件有哪些权限
chmod +x /etc/init.d/haproxy    //给这个文件x权限
ll /etc/init.d/haproxy      //查看这个文件有哪些权限

chkconfig --add haproxy

在浏览器地址栏192.168.80.100:8089/stats

vi /etc/haproxy/haproxy.cfg
    #最后一行添加
    listen webcluster     //定义webcluster云服务器组。
                    bind 0.0.0.0:80   //定义haproxy前端部分监听的端口。
                    mode http     //http的7层模式
                    option httpchk GET /index.html   //心跳检测
                    log global      //继承global中log的定义
                    maxconn 3000     //server进程可接受的最大并发连接数
                    balance roundrobin      //负载均衡的方式:轮询
    server web01 192.168.80.102:80 check inter 2000 fall 5
    server web02 192.168.80.103:80 check inter 2000 fall 5
    //
    后端服务器 web1 和 web2 ,IP 地址分别为 192.168.80.102 和 192.168.80.103
check:对当前server做健康状态检测


在浏览器地址栏192.168.80.100:8089/stats


在80.102虚拟机上

systemctl stop firewalld      //关闭防火墙
setenforce 0     //关闭监控
yum install httpd -y     //安装httpd服务
vi /etc/httpd/conf/httpd.conf      //进入这个配置文件
找到ServerName www.example.com:80把#去掉
:wq     //保存退出
cd /var/www/html/    //进入这个目录
echo "<h3>server aa</h3>" > index.html   //在当前目录中创建index.html在里面添加server aa
systemctl start httpd      //重启服务

在浏览器地址栏192.168.80.102


在80.103虚拟机上

systemctl stop firewalld      //关闭防火墙
setenforce 0     //关闭监控
yum install httpd -y     //安装httpd服务
vi /etc/httpd/conf/httpd.conf      //进入这个配置文件
找到ServerName www.example.com:80把#去掉
:wq     //保存退出
cd /var/www/html/   //进入这个目录
echo "<h3>server bb</h3>" > index.html    //在当前目录中创建index.html在里面添加server bb
systemctl start httpd      //重启服务

在浏览器地址栏192.168.80.103

看了以上关于haproxy的基本概念和实现负载均衡流程,如果大家还有什么地方需要了解的可以在天达云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,天达云技术工程师在行业内拥有十几年的经验了。

 

返回云计算教程...