haproxy+keepalived高可用

一、ip分配

1.master:192.168.67.1

2.slave:192.168.67.3

3.httpd1:192.168.67.20

4.httpd2:192.168.67.30

5.vip:192.168.67.100

二、操作步骤

1.master配置

(1)关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

(2)配置haproxy

yum -y install haproxy

vim /etc/haproxy/haproxy.cfg

global

    daemon  #以 daemon 方式运行。

    maxconn 256  #指定了 HAProxy 允许的最大连接数。

    pidfile /var/run/haproxy/haproxy.pid  #指定了 HAProxy 进程的 PID 文件存放位置。

defaults  #定义了默认配置。

    mode http 

    timeout connect 5000ms 

    timeout client 50000ms 

    timeout server 50000ms

frontend http-in  #绑定 IP 地址和端口,指定将请求转发到 default_backend 后端。

    bind *:80 

    default_backend servers 

backend servers  #定义了后端

    server server1 192.168.67.20:80 maxconn 32    #限制了每个服务的最大连接数 #WEB1 ip地址

    server server2 192.168.67.30:80 maxconn 32    #限制了每个服务的最大连接数 #WEB2 ip地址

listen stats    #定义监控页面   

bind *:1080                   #绑定端口1080   

stats refresh 30s             #每30秒更新监控数据   

stats uri /stats              #访问监控页面的uri   

stats realm HAProxy\ Stats    #监控页面的认证提示   

stats auth admin:admin        #监控页面的用户名和密码

配置完成后开启haproxy:

systemctl start haproxy

(3)配置keepalived

yum -y install keeplaived

vim /etc/keepalived/keepalived.conf

global_defs {

   router_id LVS_DEVEL

}

#HAProxy健康检查配置

vrrp_script chk_haproxy {

    script "killall -0 haproxy"  #使用killall -0检查haproxy实例是否存在,性能高于ps命令

    interval 2   #脚本运行周期

    weight 2   #每次检查的加权权重值

}

vrrp_instance HA_1 {

    state MASTER

    interface ens160

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.67.100

    }

    track_script {

        chk_haproxy        #对应的健康检查配置

    }

}

配置完成后开启keepalived:

systemctl start keepalived

2、slave配置

(1)关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

(2)配置haproxy

yum -y install haproxy

vim /etc/haproxy/haproxy.cfg

global

    daemon  #以 daemon 方式运行。

    maxconn 256  #指定了 HAProxy 允许的最大连接数。

    pidfile /var/run/haproxy/haproxy.pid  #指定了 HAProxy 进程的 PID 文件存放位置。

defaults  #定义了默认配置。

    mode http 

    timeout connect 5000ms 

    timeout client 50000ms 

    timeout server 50000ms

frontend http-in  #绑定 IP 地址和端口,指定将请求转发到 default_backend 后端。

    bind *:80 

    default_backend servers 

backend servers  #定义了后端

    server server1 192.168.67.20:80 maxconn 32    #限制了每个服务的最大连接数 #WEB1 ip地址

    server server2 192.168.67.30:80 maxconn 32    #限制了每个服务的最大连接数 #WEB2 ip地址

listen stats    #定义监控页面   

bind *:1080                   #绑定端口1080   

stats refresh 30s             #每30秒更新监控数据   

stats uri /stats              #访问监控页面的uri   

stats realm HAProxy\ Stats    #监控页面的认证提示   

stats auth admin:admin        #监控页面的用户名和密码

配置完成后开启haproxy:

systemctl start haproxy

(3)配置keepalived

yum -y install keeplaived

vim /etc/keepalived/keepalived.conf

global_defs {

   router_id LVS_DEVEL

}

#HAProxy健康检查配置

vrrp_script chk_haproxy {

    script "killall -0 haproxy"  #使用killall -0检查haproxy实例是否存在,性能高于ps命令

    interval 2   #脚本运行周期

    weight 2   #每次检查的加权权重值

}

vrrp_instance HA_1 {

    state BACKUP

    interface ens160

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.67.100

    }

    track_script {

        chk_haproxy        #对应的健康检查配置

    }

}

配置完成后开启keepalived:

systemctl start keepalived

3.httpd1配置

(1)关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

(2)配置httpd

安装:yum -y install httpd

创建测试页面:

touch /var/www/html/index.html

vi /var/www/html/index.html

输入web1 192.168.67.20

配置完成后开启httpd:systemctl start httpd

4. httpd2配置

(1)关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

(2)配置httpd

安装:yum -y install httpd

创建测试页面:

touch /var/www/html/index.html

vi /var/www/html/index.html

输入web2 192.168.67.30

配置完成后开启httpd:systemctl start httpd

5.测试

(1) 同时开启master和slave的keepalived(此时vip只存在master上),在mater上访问vip:

(2)关闭master的keepalived,slave输入ip addr发现vip已漂移,并访问vip,发现能正常访问,成功!

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现 HAProxy+Keepalived 高可用需要按照以下步骤进行: 1. 安装 HAProxyKeepalived 在主服务器和备份服务器上安装 HAProxyKeepalived。 2. 配置 HAProxy 编辑 HAProxy 配置文件,配置监听端口和后端服务器信息,并启用统计页面。例如: ``` global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull option forwardfor option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen webfarm bind 0.0.0.0:80 mode http stats enable stats uri /haproxy balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:localhost server web1 192.168.0.1:80 check server web2 192.168.0.2:80 check ``` 3. 配置 Keepalived 编辑 Keepalived 配置文件,配置虚拟 IP 地址、HAProxy 的状态检测方式和状态转移时的优先级。例如: ``` vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.0.100/24 } track_script { chk_haproxy } } ``` 4. 启动 HAProxyKeepalived 在两台服务器上分别启动 HAProxyKeepalived。 5. 测试高可用 访问虚拟 IP 地址,检查是否能够正常访问,并手动切换主备服务器,检查是否能够自动切换。 注意:以上仅为简单示例,请根据实际情况进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值