阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HAProxy双机高可用方案之HAProxy+Keepalived

447次阅读
没有评论

共计 16809 个字符,预计需要花费 43 分钟才能阅读完成。

一、keepalived 高可用

HAProxy 双机高可用方案之 HAProxy+Keepalived

Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。

系统环境: RHEL6.5x86_64 small install selinux and iptables disabled

Virtual IP            192.168.2.254

192.168.2.162    server62.exampl.com    (master)

192.168.2.163    server63.example.com(backup)

192.168.2.52      desktop52.example.com(real server)

192.168.2.53      desktop53.example.com(real server)

编辑 /etc/hoststs 做以上解析

1.keepalived 的安装配置

主备机上的软件包安装与配置

#yum install ipvsadm kernel-devel openssl-devel popt-devel libnl-devel gcc make -y

源码编译安装 keepalived:

#wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz

#tar zxf keepalived-1.2.12.tar.gz

#cd  keepalived-1.2.12

#./configure –prefix=/usr/local/keepalived    (安装目录)

… Keepalived configuration

————————

Keepalived version          : 1.2.5

Compiler                        : gcc

Compiler flags                : -g -O2

Extra Lib                          : -lpopt -lssl -lcrypto  -lnl

Use IPVS Framework      : Yes

IPVS sync daemon support : Yes

IPVS use libnl                : Yes

Use VRRP Framework    : Yes

Use VRRP VMAC            : Yes

SNMP support              : No

Use Debug flags            : No

#make && make install

创建链接:

#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#ln -s /usr/local/keepalived/etc/keepalived /etc/

#ln -s /usr/local/keepalived/sbin/keepalived /sbin

keepalived 主配置文件的修改:

#vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
 global_defs {

  notification_email {
    root@localhost          #接收警报的 email 地址, 可以添加多个

}
  notification_email_from keepalived@server62.example.com #设置邮件的发送地址

  smtp_server 127.0.0.1 #设置邮件的发送地址

  smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间

  router_id LVS_DEVEL #load balancer 的标识 ID, 用于 email 警报

}
vrrp_instance VI_1 {
    state MASTER            #备机改为 BACKUP, 此状态是由 priority 的值来决定的, 当前 priority 的值小于备机的值, 那么将会失去 MASTER 状态

    interface eth0            #HA 监测网络接口

    virtual_router_id 200  #主、备机的 virtual_router_id 必须相同, 取值 0-255

    priority 78                  #主机的优先级, 主机优先级一定要大于备机

    advert_int 1              #主备之间的通告间隔秒数

    authentication {#主备切换时的验证

    auth_type PASS    #设置验证类型, 主要有 PASS 和 AH 两种

    auth_pass 1111    #设置验证密码, 在一个 vrrp_instance 下,MASTER 与 BACKUP 必须使用相同的密码才能正常通信
}
    virtual_ipaddress {
        192.168.2.254        #设置虚拟 IP 地址, 可以设置多个虚拟 IP 地址, 每行一个

 }
    virtual_server 192.168.2.254 80 {# 定义虚拟服务器

    delay_loop 6          #每隔 6 秒查询 realserver 状态

    lb_algo rr              #lvs 调度算法, 这里使用轮叫

    lb_kind DR            #LVS 是用 DR 模式

    #persistence_timeout 50 #会话保持时间, 单位是秒, 这个选项对于动态网页是非常有用的, 为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能, 用户的 请求会被一直分发到某个服务节点, 直到超过这个会话保持时间。需要注意的是, 这个会话保 持时间, 是最大无响应超时时间, 也就是说用户在操作动态页面时, 如果在 50 秒内没有执行任 何操作, 那么接下来的操作会被分发到另外节点, 但是如果一直在操作动态页面, 则不受 50 秒 的时间限制。

    protocol TCP          #指定转发协议类型, 有 tcp 和 udp 两种

    real_server 192.168.2.52 80 {#配置服务节点

    weight 1                #配置服务节点的权值, 权值大小用数字表示, 数字越大, 权 值越高, 设置权值的大小可以为不同性能的服务器分配不同的负载, 可以对性能高的服务器设 置较高的权值, 而对性能较低的服务器设置相对较低的权值, 这样就合理的利用和分配了系统 资源

    TCP_CHECK {#realserve 的状态检测设置部分, 单位是秒

    connect_timeout 3                #10 秒无响应超时

    nb_get_retry 3                      #重试次数

    delay_before_retry 3              #重试间隔

      }

    }
    real_server 192.168.2.53 80 {
      weight 1
      TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
    delay_before_retry 3
    }
    }
}

#/etc/init.d/keepalived restart 启动 keepalived

2.realserver 的配置

# 分别在 realserver 上执行以下命令添加策略

192.168.2.53

#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up 添加虚拟 ip

#arptables -A IN -d 192.168.2.254 -j DROP

#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.53

这些配置会写入文件 /etc/sysconfig/arptables

#/etc/init.d/arptables_jf save

#/etc/init.d/arptables_jf start

#echo `hostname` > /var/www/html/index.html

#service httpd start

192.168.2.52

#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up

#arptables -A IN -d 192.168.2.254 -j DROP

#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.52

这些配置会写入文件 /etc/sysconfig/arptables

#/etc/init.d/arptables_jf save

#/etc/init.d/arptables_jf start

#echo `hostname` > /var/www/html/index.html

#service httpd start

最后在 master 主机查看是否添加成功

# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.2.254:http rr
  -> server52.example.com:http  Route  1      0          7       
  -> server53.example.com:http    Route  1      0          8     

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

4. 测试:
1. 高可用测试: 停止 master 上的 keepalived 服务, 看 backup 是否接管。
2. 负载均衡测试: 访问 http://192.168.2.254, 看到页面在两个 realserver 上切换表示成功你也可以通过 ipvsadm -Lnc 查看详细连接情况!
3. 故障切换测试: 任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现, 然后屏蔽故障节点, 同时将服务转移到正常节点来执行。

5. 添加 ftp 服务:(理论需要再加一个需拟 IP,可是一个 IP 也可以)

在两个服务节点安装 vsftpd 服务

[root@server52 ~]# yum install -y vsftpd

[root@server52 ftp]# ls    在 ftp 的发布目录里写东西测试;

pub  server52(server53)

[root@server52 ftp]#service vsftpd restart      开启服务

修改两台调度器的配置文件:

master 和 backup 主机修改住配置文件

# vim /etc/keepalived/keepalived.conf 在其后添加
virtual_server 192.168.2.254 21(ftp 端口号是 21){
    delay_loop 3
    lb_algo rr
    lb_kind DR
    persistence_timeout 50        —–》持续链接(!很重要哦)
    protocol TCP

    real_server 192.168.2.52 21 {
        weight 1
            TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.2.53 21 {
        weight 1
            TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
 }
 }
}

reload 两台调度器

# /etc/init.d/keepalived reload

!注意:如果使用的是另一个虚拟 ip,要在 real server 主机上用 arptables 分别添加进去(本实验为了方便不做演示,具体过程如上)。

测试:先用浏览器测试 httpd 服务是否能正常启动,再用真机终端测 ftp 服务
# lftp 192.168.2.254
lftp 192.168.2.254:~> ls
drwxr-xr-x    2 0        0            4096 Feb 12  2013 pub
-rw-r–r–    1 0        0              0 May 31 08:02 server52
lftp 192.168.2.254:/> quit   

查看是否添加成功

# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.2.254:ftp rr persistent 50
  -> server52.example.com:ftp    Route  1      0          0       
  -> server53.example.com:ftp    Route  1      0          0       
TCP  192.168.2.254:http rr
  -> server52.example.com:http    Route  1      0          0       
  -> server53.example.com:http    Route  1      0          0

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-07/104794p2.htm

二、haproxy 负载均衡

HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理, 支持虚拟主机, 它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上, 完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整 合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上。

HAProxy 双机高可用方案之 HAProxy+Keepalived

节点主机:192.168.2.162 haproxy、keepalived

                192.168.2.163 haproxy、keepalived

realserver:192.168.2.52 web1

                        192.168.2.53 web2

vip:192.168.2.254

1.haproxy 的安装配置   

1.1、rpm 包方式:rpmbuild -tb haproxy-1.4.23.tar.gz

rpm -ivh /root/rpmbuild/RPMS/x86_64/haproxy-1.4.23-1.x86_64.rpm

1.2、源码方式:

tar zxf haproxy-1.4.23.tar.gz

cd haproxy-1.4.23

make TARGET=linux26 ARCH=x86_64 USE_PCRE=1 PREFIX=/usr/local/haproxy install

2、修改配置文件:

#vi /etc/haproxy/haproxy.cfg

global

            log 127.0.0.1 local0            #指定日志设备

            #log 127.0.0.1 local1 notice

              log loghost local0 info #指定日志类型, 还有 err warning debug

              maxconn 65535 #并发最大连接数量

              chroot /usr/share/haproxy #jail 目录

                uid 99 #用户

                gid 99 #组

                daemon #后台运行

                #debug

                #quiet

defaults

                log    global

                mode http #默认使用 http 的 7 层模式 tcp: 4 层

                option httplog #http 日志格式

                option dontlognull #禁用空链接日志

                retries 3 #重试 3 次失败认为服务器不可用

                option redispatch #当 client 连接到挂掉的机器时, 重新分配到健康的主机

            maxconn 65535

                contimeout 5000 #连接超时

                clitimeout 50000 #客户端超时

                srvtimeout 50000 #服务器端超时

                stats uri    /status    #haproxy 监控页面

listen www.example.com *:80            #监听的实例名称, 地址和端口

            balance roundrobin                #负载均衡算法

            server web1 192.168.2.52:80 cookie app1inst1 check inter 2000 rise 2 fall 5

            server web2 192.168.2.53:80 cookie app1inst2 check inter 2000 rise 2 fall 5

          #cookie app1inst1: 表示 serverid 为 app1inst1        #check inter 2000: 检测心跳频率

          #rise 2: 表示 2 次正确认为服务器可用                        #fall 5: 表示 5 次失败认为服务器不可用

# mkdir /usr/share/haproxy

# /etc/init.d/haproxy start

当 haproxy 启动报错——Starting proxy www.example.com: cannot bind socket 这个问题,其实就是因为你的 haproxy 没有得到 VIP 的原因,而你的配置文件又绑定了 VIP 地址,所以会提示以上错误当然,你也要确保你 的 haproxy 服务器做了 hearbeat 或 keepalived,绑定 VIP,要不就无法高可用了。
解决方法:

修改内核参数:/etc/sysctl.conf

net.ipv4.ip_nonlocal_bind=1

保存结果,使结果生效

sysctl –p

或者使用 echo 进去,前提是 sysctl.conf 文件中没有本条参数:

echo ‘net.ipv4.ip_nonlocal_bind = 1’>>/etc/sysctl.conf            ##net.ipv4.ip_nonlocal_bind=1 意思是启动 haproxy 的时候,允许忽视 VIP 的存在

除上面的原因之外,还有可能造成 Starting proxy www.example.com: cannot bind socket 确定你的 haproxy 服务器中是否开启有 apache 或 nginx 等 WEB 服务,如果有,请先停掉这些服务否则就出现以上故障。

顺便提醒下,haproxy 代理服务器同时也要打开内核的转发功能,如下参数:

net.ipv4.ip_forward = 1

2. 测试:

访问 http://www.example.com 测试负载,访问 haproxy 监控页面:http://192.168.2.162/status

监控页面添加认证:

listen stats_auth *:80

        stats enable

        stats uri /status #监控页面地址

        stats auth admin:westos #管理帐号和密码

        stats refresh 5s #刷新频率

haproxy 日志:

# vi /etc/rsyslog.conf #接受 haproxy 日志

$ModLoad imudp

$UDPServerRun 514

local0.* /var/log/haproxy.log        #日志文件位置

# /etc/init.d/rsyslog restart

三、haproxy+keepalived 的整合

MASTER:

#vim /etc/keepalived/ keepalived.conf

# cat keepalived.conf

! Configuration File for keepalived

vrrp_script check_haproxy {

        script “/etc/keepalived/check_haproxy.sh”

        interval 2

        weight 2

}

global_defs {

            notification_email {

            root@localhost

}

        notification_email_from keepalived@server62.example.com

        smtp_server 127.0.0.1

        smtp_connect_timeout 30

        router_id LVS_DEVEL

}

vrrp_instance VI_1 {

        state MASTER

        interface eth0

        virtual_router_id 151

        priority 100

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

virtual_ipaddress {

        192.168.2.254

    }

track_script {

        check_haproxy

    }

}

BACKUP:

# cat keepalived.conf

! Configuration File for keepalived

vrrp_script check_haproxy {

        script “/opt/check_haproxy.sh”

        interval 2

        weight 2

    }

global_defs {

        notification_email {

        root@localhost

    }

        notification_email_from keepalived@server63.example.com

        smtp_server 127.0.0.1

        smtp_connect_timeout 30

        router_id LVS_DEVEL

    }

vrrp_instance VI_1 {

        state BACKUP

        interface eth0

        virtual_router_id 151

        priority 50

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

virtual_ipaddress {

        192.168.2.254

    }

track_script {

        check_haproxy

    }

}

检测脚本:

# cat /etc/keepalived/check_haproxy

#!/bin/bash

/etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/null

if [$? -ne 0];then

/etc/init.d/keepalived stop &> /dev/null

fi

四、验证此架构及注意事项

我们可以关闭主 HAProxy 机器或重新启动,看在此过程中,VIP 地址有没有正确的转移到从 HAProxy 机器上,影响我们访问网站没,以上步骤我自己测试过多次,而且线上环境的稳定行,证明 HAProxy+Keeaplived 双机方案确实是有效的。

关于 HAProxy+Heartbeat 这种负载均衡高可用架构,有些情况我也跟大家说明一下:

◆在此 HAProxy+Keepalivp 负载均衡高可用架构中,我们是如何解决 session 的问题呢?我们这里采用的是它自身的 balance source(负载均衡)机制,它跟 Nginx 的 ip_hash 机制原理类似,是让客户机访问时始终访问后端的某一台真实的 web 服务器,这样让 session 就固定 下来了;

◆有网友配置 HAProxy 时喜欢用 listen xxx.xxx.xxx.xxx:80 这样的格式,这样其实不好,做负载均衡高可用时由于从机分配不到 VIP 地址,会导致从机启动不了,我建议用 bind *:80 的方式来代替。

◆HAProxy 的并发监控暂时没有 Nginx 中的相关模块,但可以考虑用 SHELL 命令或自行开发 PHP 或 JSP 程序来监控。

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Keepalived+Haproxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

Haproxy+Keepalived��建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

HAproxy 的详细介绍 :请点这里
HAproxy 的下载地址 :请点这里

一、keepalived 高可用

HAProxy 双机高可用方案之 HAProxy+Keepalived

Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。

系统环境: RHEL6.5x86_64 small install selinux and iptables disabled

Virtual IP            192.168.2.254

192.168.2.162    server62.exampl.com    (master)

192.168.2.163    server63.example.com(backup)

192.168.2.52      desktop52.example.com(real server)

192.168.2.53      desktop53.example.com(real server)

编辑 /etc/hoststs 做以上解析

1.keepalived 的安装配置

主备机上的软件包安装与配置

#yum install ipvsadm kernel-devel openssl-devel popt-devel libnl-devel gcc make -y

源码编译安装 keepalived:

#wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz

#tar zxf keepalived-1.2.12.tar.gz

#cd  keepalived-1.2.12

#./configure –prefix=/usr/local/keepalived    (安装目录)

… Keepalived configuration

————————

Keepalived version          : 1.2.5

Compiler                        : gcc

Compiler flags                : -g -O2

Extra Lib                          : -lpopt -lssl -lcrypto  -lnl

Use IPVS Framework      : Yes

IPVS sync daemon support : Yes

IPVS use libnl                : Yes

Use VRRP Framework    : Yes

Use VRRP VMAC            : Yes

SNMP support              : No

Use Debug flags            : No

#make && make install

创建链接:

#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#ln -s /usr/local/keepalived/etc/keepalived /etc/

#ln -s /usr/local/keepalived/sbin/keepalived /sbin

keepalived 主配置文件的修改:

#vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
 global_defs {

  notification_email {
    root@localhost          #接收警报的 email 地址, 可以添加多个

}
  notification_email_from keepalived@server62.example.com #设置邮件的发送地址

  smtp_server 127.0.0.1 #设置邮件的发送地址

  smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间

  router_id LVS_DEVEL #load balancer 的标识 ID, 用于 email 警报

}
vrrp_instance VI_1 {
    state MASTER            #备机改为 BACKUP, 此状态是由 priority 的值来决定的, 当前 priority 的值小于备机的值, 那么将会失去 MASTER 状态

    interface eth0            #HA 监测网络接口

    virtual_router_id 200  #主、备机的 virtual_router_id 必须相同, 取值 0-255

    priority 78                  #主机的优先级, 主机优先级一定要大于备机

    advert_int 1              #主备之间的通告间隔秒数

    authentication {#主备切换时的验证

    auth_type PASS    #设置验证类型, 主要有 PASS 和 AH 两种

    auth_pass 1111    #设置验证密码, 在一个 vrrp_instance 下,MASTER 与 BACKUP 必须使用相同的密码才能正常通信
}
    virtual_ipaddress {
        192.168.2.254        #设置虚拟 IP 地址, 可以设置多个虚拟 IP 地址, 每行一个

 }
    virtual_server 192.168.2.254 80 {# 定义虚拟服务器

    delay_loop 6          #每隔 6 秒查询 realserver 状态

    lb_algo rr              #lvs 调度算法, 这里使用轮叫

    lb_kind DR            #LVS 是用 DR 模式

    #persistence_timeout 50 #会话保持时间, 单位是秒, 这个选项对于动态网页是非常有用的, 为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能, 用户的 请求会被一直分发到某个服务节点, 直到超过这个会话保持时间。需要注意的是, 这个会话保 持时间, 是最大无响应超时时间, 也就是说用户在操作动态页面时, 如果在 50 秒内没有执行任 何操作, 那么接下来的操作会被分发到另外节点, 但是如果一直在操作动态页面, 则不受 50 秒 的时间限制。

    protocol TCP          #指定转发协议类型, 有 tcp 和 udp 两种

    real_server 192.168.2.52 80 {#配置服务节点

    weight 1                #配置服务节点的权值, 权值大小用数字表示, 数字越大, 权 值越高, 设置权值的大小可以为不同性能的服务器分配不同的负载, 可以对性能高的服务器设 置较高的权值, 而对性能较低的服务器设置相对较低的权值, 这样就合理的利用和分配了系统 资源

    TCP_CHECK {#realserve 的状态检测设置部分, 单位是秒

    connect_timeout 3                #10 秒无响应超时

    nb_get_retry 3                      #重试次数

    delay_before_retry 3              #重试间隔

      }

    }
    real_server 192.168.2.53 80 {
      weight 1
      TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
    delay_before_retry 3
    }
    }
}

#/etc/init.d/keepalived restart 启动 keepalived

2.realserver 的配置

# 分别在 realserver 上执行以下命令添加策略

192.168.2.53

#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up 添加虚拟 ip

#arptables -A IN -d 192.168.2.254 -j DROP

#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.53

这些配置会写入文件 /etc/sysconfig/arptables

#/etc/init.d/arptables_jf save

#/etc/init.d/arptables_jf start

#echo `hostname` > /var/www/html/index.html

#service httpd start

192.168.2.52

#ifconfig eth0:0 192.168.2.254 netmask 255.255.255.255 up

#arptables -A IN -d 192.168.2.254 -j DROP

#arptables -A OUT -s 192.168.2.254 -j mangle –mangle-ip-s 192.168.2.52

这些配置会写入文件 /etc/sysconfig/arptables

#/etc/init.d/arptables_jf save

#/etc/init.d/arptables_jf start

#echo `hostname` > /var/www/html/index.html

#service httpd start

最后在 master 主机查看是否添加成功

# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.2.254:http rr
  -> server52.example.com:http  Route  1      0          7       
  -> server53.example.com:http    Route  1      0          8     

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

4. 测试:
1. 高可用测试: 停止 master 上的 keepalived 服务, 看 backup 是否接管。
2. 负载均衡测试: 访问 http://192.168.2.254, 看到页面在两个 realserver 上切换表示成功你也可以通过 ipvsadm -Lnc 查看详细连接情况!
3. 故障切换测试: 任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现, 然后屏蔽故障节点, 同时将服务转移到正常节点来执行。

5. 添加 ftp 服务:(理论需要再加一个需拟 IP,可是一个 IP 也可以)

在两个服务节点安装 vsftpd 服务

[root@server52 ~]# yum install -y vsftpd

[root@server52 ftp]# ls    在 ftp 的发布目录里写东西测试;

pub  server52(server53)

[root@server52 ftp]#service vsftpd restart      开启服务

修改两台调度器的配置文件:

master 和 backup 主机修改住配置文件

# vim /etc/keepalived/keepalived.conf 在其后添加
virtual_server 192.168.2.254 21(ftp 端口号是 21){
    delay_loop 3
    lb_algo rr
    lb_kind DR
    persistence_timeout 50        —–》持续链接(!很重要哦)
    protocol TCP

    real_server 192.168.2.52 21 {
        weight 1
            TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.2.53 21 {
        weight 1
            TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
 }
 }
}

reload 两台调度器

# /etc/init.d/keepalived reload

!注意:如果使用的是另一个虚拟 ip,要在 real server 主机上用 arptables 分别添加进去(本实验为了方便不做演示,具体过程如上)。

测试:先用浏览器测试 httpd 服务是否能正常启动,再用真机终端测 ftp 服务
# lftp 192.168.2.254
lftp 192.168.2.254:~> ls
drwxr-xr-x    2 0        0            4096 Feb 12  2013 pub
-rw-r–r–    1 0        0              0 May 31 08:02 server52
lftp 192.168.2.254:/> quit   

查看是否添加成功

# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.2.254:ftp rr persistent 50
  -> server52.example.com:ftp    Route  1      0          0       
  -> server53.example.com:ftp    Route  1      0          0       
TCP  192.168.2.254:http rr
  -> server52.example.com:http    Route  1      0          0       
  -> server53.example.com:http    Route  1      0          0

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-07/104794p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计16809字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7997571
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...