CentOS7.9 Haproxy 2.2版本 L7安装及使用

haproxy
CentOS 中yum安装版本太低,是1.5版本
可以添加yum源
使用其他的yum源,我们这里就使用IUS源。

IUS is a yum repository that provides newer versions of select software for RHEL and CentOS.

它为CentOS按RHEL提供最新软件版本的yum源。

1.配置IUS yum源

vim /etc/yum.repos.d/ius-7.repo

[ius]

name = IUS for Enterprise Linux 7 - $basearch

baseurl = https://repo.ius.io/7/$basearch/

enabled = 1

repo_gpgcheck = 0

gpgcheck = 1

gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7

[ius-debuginfo]

name = IUS for Enterprise Linux 7 - $basearch - Debug

baseurl = https://repo.ius.io/7/$basearch/debug/

enabled = 0

repo_gpgcheck = 0

gpgcheck = 1

gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7

[ius-source]

name = IUS for Enterprise Linux 7 - Source

baseurl = https://repo.ius.io/7/src/

enabled = 0

repo_gpgcheck = 0

gpgcheck = 1

gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7

 

2. 清理缓存:yum clean all

3. 更新缓存:yum makecache fast

4. 查看版本:yum list|grep haproxy

安装最新版本


 
 4 层负载均衡本质是转发,而 7 层负载本质是内容交换和代理

file://c:\users\marshall\appdata\local\temp\tmpvydfrk\1.png

高性能高可用负载均衡软件Haproxy  很多人也将其称为代理。
1、Haproxy是什么?  Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一。  它支持双机热备、虚拟主机、基于TCP和HTTP应用代理、具有图形界面等功能。  配置简单,拥有很好的对服务器节点的健康检查功能,当其代理的后端服务器出现故障时,Haproxy会自动将故障服务器摘除,当服务器故障恢复后,Haproxy会自动将该RS服务器加入。   
2、适用场合  适用于那些访问量很大,但是又需要绘画爆出或者七层应用的业务。Haproxy运行在普通的硬件服务器上,仅仅进行简单的优化就可以支持数以万计的并发连接。而且他的运行模式使得他可以很简单安全的整合进各种网站的架构中,同时使得应用服务器不会暴露到网络上(实际上Haproxy用的是NAT的模式,那么他所代理的服务器不需要有外网IP,仅仅有内网IP即可)
 
3、其他功能  自Haproxy 1.3版本起,Haproxy软件引入了frontend、backend功能。   简单说 frontend:做规则匹配  backend:server pools等待前端将请求转发过来的服务器组   通过frontend和backend,我们可以很容易的实现haproxy的7层应用代理功能。 
比nginx简单  缺点是他不能提供web服务,只是个代理功能
 
4、Haproxy支持两种主要代理模式
1)4层TCP代理模式  例如:邮件服务、防火墙的代理(负载均衡)、MySQL服务等。  仅在客户端和服务器之间双向转发流量。
2)7层代理模式  例如:HTTP代理等  在该代理模式下,Haproxy会根据应用层协议的请求头,做相关的控制。

Haproxy负载均衡集群
实验环境:

1)L7
HA:192.168.31.6(用的默认1.5版本)
web1:192.168.31.129
web2:192.168.31.90
web1(web2同)
50  hostnamectl set-hostname web1/2

   51  yum install httpd -y

   54  echo web1/2 > /var/www/html/index.html

   57  systemctl start httpd

HA:
1.先实现一台HA负载均衡
~]# yum install haproxy -y
]# vim /etc/haproxy/haproxy.cfg
后添加:
#此处为web图形界面的配置:
listen stats
        bind                *:1314                    #端口

        stats               enable

        stats refresh       30s

        stats uri           /haproxystats       #url后缀

        stats               hide-version

        stats realm         Haproxy\ stats

        stats auth          up:123               #帐号:密码

        stats admin         if TRUE

#此处是负载均衡后端服务器的配置

listen web

        mode                http

        bind                *:80

        balance             roundrobin

server http1 192.168.31.129:80 maxconn 2000 weight 1 check

server http2 192.168.31.90:80   maxconn 2000 weight 1 check

 

访问web界面查看haproxy的情况
账号:up
密码:123

 
查看HA是否成功:

 

Keepalived + Haproxy

 
架构:
其中虚拟IP地址在keepalived的配置文件中配置

当客户端访问vip时,如果HAM没有down掉,则正常访问HA,如果HAM服务器出现问题Down掉了,则keepalived切换HAB实现HA的正常功能
实现:
1.增加一台服务器HAB,将HAM配置文件复制到backup
scp 192.168.31.6:/etc/haproxy/haproxy.cfg  /etc/haproxy/haproxy.cfg
2.两台服务器都装keepalived:
[root@master ~]# yum -y install keepalived
root@backup ~]# yum -y install keepalived
 
3.配置master keepalived:
global_defs {

        router_id haproxy1        #HA1

}

        vrrp_instance VI_1 {

        state MASTER                   #主备,主

        interface enp0s3            #网卡

        virtual_router_id 100        #主备保持一致

                priority 100            #优先级

                advert_int 1

                authentication {

                auth_type PASS

                auth_pass 1111

        }

                virtual_ipaddress {

                        192.168.31.230    #虚拟IP

                }

        }

 
4.配置backup keepalived:
global_defs {

   router_id haproxy2

}

vrrp_instance VI_1 {

    state BACKUP

    interface enp0s3

    virtual_router_id 100

    priority 50

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.31.230

    }

}

 
重启keepalived,并设置开机自启,查看HA master的IP:
 
keepalived如成功布置好,会显示vip:
[root@ham ~]# systemctl start keepalived

[root@master ~]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 08:00:27:85:13:94 brd ff:ff:ff:ff:ff:ff

    inet 192.168.31.6/24 brd 192.168.31.255 scope global noprefixroute dynamic enp0s3

       valid_lft 42589sec preferred_lft 42589sec

   inet 192.168.31.230/32 scope global enp0s3

       valid_lft forever preferred_lft forever

    inet6 fe80::f9e8:5d71:e6e4:8965/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::aa2:b386:daae:3d7e/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

验证:

HA master服务器故障时,客户端访问vip不会出现异常,因为keepalived会自动切换到HA backup服务器,vip会出现在backup服务器上:

 

1.关停HA master:关机,或关闭网卡
2.查看HA backup IP:
[root@backupkeepalived]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 08:00:27:0a:a4:c2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.31.35/24 brd 192.168.31.255 scope global noprefixroute dynamic enp0s3

       valid_lft 42483sec preferred_lft 42483sec

    inet 192.168.31.230/32 scope global enp0s3

       valid_lft forever preferred_lft forever

    inet6 fe80::f9e8:5d71:e6e4:8965/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

    inet6 fe80::aa2:b386:daae:3d7e/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

3. 在浏览器模拟客户端访问vip地址查看是否切换成功

 
 
 
 
posted @ 2020-12-21 12:21  5444de  阅读(917)  评论(0编辑  收藏  举报