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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
6天前
|
Kubernetes 负载均衡 应用服务中间件
深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置
深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置
|
2天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
2天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
6天前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了&quot;http://&quot;。修正方法是删除上游服务器列表和proxy_pass中的&quot;http://&quot;。问题解决后,Nginx服务应能正常启动。
42 4
解决nginx配置负载均衡时invalid host in upstream报错
|
7天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
7天前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
27 1
|
7天前
|
负载均衡 Ubuntu 应用服务中间件
Apache(mod_proxy)+Tomcat负载均衡配置
Apache(mod_proxy)+Tomcat负载均衡配置
|
7天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
7天前
|
负载均衡 监控 网络协议
使用haproxy实现负载均衡集群
【4月更文挑战第14天】HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,快速并且可靠的一种解决方案。
16 1
|
7天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
50 0