RHEL6配置HAProxy负载均衡集群

简介:

实验拓扑图

HAProxy.jpg



操作流程

       Real Server :     192.168.4.53 pc53         192.168.4.54 pc54 

        配置WEB 服务器


        HAProxy调度器  :         192.168.4.50 pc50

        安装并启用HAProxy

         修改配置文件配置负载平衡

        

        Clinet :192.168.4.253 pc253

        连接测试        



具体步骤

环境准备

    配置yum源

    # service iptables stop            //关闭防火墙

    # chkconfig iptables off            //关闭开机自启

    # setenforce 0                            //设置SELinux 为宽松模


配置WEB服务器  pc53 / pc54

    #yum -y install httpd  php 

    #service httpd start  

    #chkconfig httpd on

    [root@pc53 ~] #echo " <?php echo 'web53' ; ?>  " > /var/www/html/test.php

    [root@pc54 ~] #echo " <?php echo 'web54' ; ?>  " > /var/www/html/test.php

    

配置HAProxy分发器  pc50

    安装并启动HAProxy

    # mount /dev/cdrom /mnt/

    RHEL6 光盘文件的LoadBalancer目录中含有HAProxy的RPM包

    在已有的yum源配置文件 上添加如下

    [LoadBalancer]

    name=LoadBalancer

    baseurl=file:///mnt/LoadBalancer

    gpgcheck=0

    

    # yum -y install haproxy

    # rpm -qa haproxy

    haproxy-1.5.4-2.el6.x86_64

    

    # rpm -qc haproxy

    /etc/haproxy/haproxy.cfg        //haproxy配置文件

    /etc/logrotate.d/haproxy

    /etc/sysconfig/haproxy

    # cp /etc/haproxy/haproxy.cfg /root/   //备份haproxy配置文件

    

    # chkconfig haproxy on//设置开机自启

    # chkconfig --list haproxy

    haproxy        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

    

    修改HAProxy配置文件 进行配置

      HAProxy配置文件 说明

        — 命令行:总是具有最高优先级

        — global 部分:全局设置进程级别参数

        — 代理声明部分

                来自于 default, listen, frontend 和 backend

                — default 为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置

                — frontend 描述接受客户端侦听套接字(socket)集

                — backend 描述转发链接的服务器集

                — listen 把frontend 和 backend 结合到一起的完整声明

    不做业务区分  修改配置文件如下

    # vim /etc/haproxy/haproxy.cfg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
     global
     log         127.0.0.1 local2            
 
     chroot       /var/lib/haproxy
     pidfile      /var/run/haproxy .pid         //haproxy 的pid存放路径
     maxconn     4000                      // 最大连级数 默认4000
     user        haproxy
     group       haproxy
     daemon                                //  创建1个进程进程入deamon模式运行
 
     # turn on stats unix socket
     stats socket  /var/lib/haproxy/stats
 
 
defaults
     mode                    http             #默认的模式 mode{tcp|http|health}
     log                     global             # 采用全局定义的日志
     option                  httplog            # 日志类别http日志格式
     option                  dontlognull         #不记录健康检查的日志信息
     option http-server-close
     option forwardfor       except 127.0.0.0 /8   #后端服务器可以从Http Header中获得客户端IP
     option                  redispatch         #serverid 服务器挂掉后强制指定向到其他健康服务器
     retries                 3            #3次连接失败就认为u服务不可用,也可以通过后面设置
     timeout http-request    10s
     timeout queue           1m
     timeout connect         10s         #如果backend 没有指示,默认为10s
     timeout client          1m          #客户端连接超时
     timeout server          1m         #服务器连接超时
     timeout http-keep-alive 10s
     timeout check           10s
     maxconn                 3000         #最大连接数
     stats uri  /admin                 // 定义监控页面 uri
 
listen weblb 0.0.0.0:80
     cookie SERVERID rewrite
     balance roundrobin
     server weba 192.168.4.53:80 cookie app1inst1 check inter 2000 rise 2 fall 5
     server webb 192.168.4.54:80 cookie app1inst2 check inter 2000 rise 2 fall 5

    

    # service haproxy start     //启动服务

    # netstat -pantu | grep :80

    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      3192/haproxy  

    

客户端访问

    # elinks --dump 192.168.4.50/test.php

       web53

    # elinks --dump 192.168.4.50/test.php

       web54

    # elinks --dump 192.168.4.50/test.php

       web53

    # elinks --dump 192.168.4.50/test.php

       web54

   # elinks --dump 192.168.4.50/test.php

       web53

    # elinks --dump 192.168.4.50/test.php

       web54

    # firefox 192.168.4.50/admin          //查看监控页面

    一1.jpg





部署基于业务区分HAProxy负载平衡集群



实验拓扑图




HAProxy2.jpg



操作流程

       Real Server :      

        配置WEB 服务器  使用HTML网页文件       192.168.4.51 pc51         192.168.4.52 pc52  

                                        使用php 网页文件           192.168.4.53  pc53        192.168.4.54  pc54

        HAProxy调度器  :         192.168.4.50 pc50

        安装并启用HAProxy

         修改配置文件配置负载平衡

        

        Clinet :192.168.4.253 pc253

        连接测试        


具体步骤

环境准备

    配置yum源

    # service iptables stop            //关闭防火墙

    # chkconfig iptables off            //关闭开机自启

    # setenforce 0                            //设置SELinux 为宽松模



配置web服务端 pc 51    pc 52    pc 53    pc54    

部署基本的httpd 服务 

    # yum -y install httpd

在pc 53 和 pc 54 上下载 php 软件包

    #yum -y install  php  


    #service httpd start 

    #chkconfig httpd on

    # cd /var/www/html/

    [root@pc51 html]# echo 192.168.4.51 > index.html 

    [root@pc52 html]# echo 192.168.4.52 > index.html

    [root@pc53 html]# echo '<?php echo "192.168.4.53";?>'  > test.php

    [root@pc54 html]# echo '<?php echo "192.168.4.54";?>'  > test.php


配置HAProxy分发器  pc50

    安装并启动HAProxy

    # mount /dev/cdrom /mnt/

    RHEL6 光盘文件的LoadBalancer目录中含有HAProxy的RPM包

    在已有的yum源配置文件 上添加如下

    [LoadBalancer]

    name=LoadBalancer

    baseurl=file:///mnt/LoadBalancer

    gpgcheck=0

    

    # yum -y install haproxy

    # rpm -qa haproxy

    haproxy-1.5.4-2.el6.x86_64

    

    # rpm -qc haproxy

    /etc/haproxy/haproxy.cfg        //haproxy配置文件

    /etc/logrotate.d/haproxy

    /etc/sysconfig/haproxy

    # cp /etc/haproxy/haproxy.cfg /root/   //备份haproxy配置文件

    

    # chkconfig haproxy on//设置开机自启

    # chkconfig --list haproxy

    haproxy        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭


基于业务区分 修改配置文件

    # cd /etc/haproxy/

    修改配置文件

    # vim haproxy.cfg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
global
     log         127.0.0.1 local2
 
     chroot       /var/lib/haproxy
     pidfile      /var/run/haproxy .pid
     maxconn     4000
     user        haproxy
     group       haproxy
     daemon
 
     # turn on stats unix socket
     stats socket  /var/lib/haproxy/stats
 
 
defaults
     mode                    http
     log                     global
     option                  httplog
     option                  dontlognull
     option http-server-close
     option forwardfor       except 127.0.0.0 /8
     option                  redispatch
     retries                 3
     timeout http-request    10s
     timeout queue           1m
     timeout connect         10s
     timeout client          1m
     timeout server          1m
     timeout http-keep-alive 10s
     timeout check           10s
     maxconn                 3000
     stats uri  /admin
 
 
 
frontend  weblb *:80
     acl urlhtml       path_end       -i .html             //  acl 名字         匹配路径结尾   不区分大小写 .html
     acl urlphp       path_end       -i .php
     use_backend htmlgrp           if  urlhtml              // 如果接受到与urlhtml这个ACL 匹配时 去找htmlgrp 组
#   use_backend phpgrp          if urlphp
     default_backend            htmlgrp                  //  默认去找htmlgrp
 
backend htmlgrp
     balance     roundrobin
     server  web51 192.168.4.51:80 check                //check  后不写参数 默认用 defaults 定义的参数
     server  web52 192.168.4.52:80 check
 
backend phpgrp
     balance     roundrobin
     server  web53 192.168.4.53:80 check
     server  web52 192.168.4.54:80 check

        


客户端访问

 # firefox 192.168.4.50/admin          //查看监控页面

二.1。1.jpg

//测试html

# elinks --dump 192.168.4.50

   192.168.4.51

# elinks --dump 192.168.4.50

   192.168.4.52

# elinks --dump 192.168.4.50

   192.168.4.51

# elinks --dump 192.168.4.50

   192.168.4.52

 # firefox 192.168.4.50/admin          //查看监控页面

二.2。1.jpg


健康性检查

模拟 51 服务器 故障 

[root@pc51 ~]# service httpd stop

# elinks --dump 192.168.4.50

   192.168.4.52

# elinks --dump 192.168.4.50

   192.168.4.52

# elinks --dump 192.168.4.50

   192.168.4.52

 # firefox 192.168.4.50/admin          //查看监控页面

二.3。1.jpg


模拟 51 服务器 故障已经解决

[root@pc51 ~]# service httpd start

# elinks --dump 192.168.4.50

   192.168.4.52

# elinks --dump 192.168.4.50

   192.168.4.51

# elinks --dump 192.168.4.50

   192.168.4.52

# elinks --dump 192.168.4.50

   192.168.4.51

 # firefox 192.168.4.50/admin          //查看监控页面

二.4。1.jpg


//测试php

# elinks --dump 192.168.4.50/test.php

   192.168.4.53

# elinks --dump 192.168.4.50/test.php

   192.168.4.54

# elinks --dump 192.168.4.50/test.php

   192.168.4.53

# elinks --dump 192.168.4.50/test.php

   192.168.4.54

 # firefox 192.168.4.50/admin          //查看监控页面

二.5。1.jpg










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2060586,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
26 3
|
4月前
|
负载均衡 网络协议 网络架构
VRRP负载均衡模式配置实用吗?
VRRP负载均衡模式配置实用吗?
|
4天前
|
负载均衡 监控 网络协议
使用haproxy实现负载均衡集群
【4月更文挑战第14天】HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,快速并且可靠的一种解决方案。
8 1
|
1月前
|
弹性计算 缓存 网络协议
slb配置监听规则
配置Server Load Balancer的监听规则涉及选择协议(如HTTP/HTTPS/TCP/UDP)、设置端口,配置后端服务器组,设定健康检查(TCP或HTTP),定义转发规则(轮询、权重等),配置SSL证书、会话保持及安全优化措施。在阿里云上,这可通过登录控制台,选择SLB实例,添加监听并设置相关参数来完成。不同云服务商的具体步骤可能略有差异,参考官方文档为宜。
36 3
|
1月前
|
弹性计算 负载均衡 算法
SLB配置与使用
SLB配置与使用
30 4
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
271 0
|
2月前
|
数据采集 负载均衡 应用服务中间件
Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
33 0
|
3月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡
|
3月前
|
Kubernetes 负载均衡 监控
Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装
Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装
|
4月前
|
负载均衡 算法 应用服务中间件
(原理及配置)nginx配置负载均衡
(原理及配置)nginx配置负载均衡
80 1