Haproxy+Keepalived

1.  环境规划:

主机名主机地址角色
node1

192.168.188.11

192.168.188.100(VIP)

MASTER
node2192.168.188.12BACKUP
node3192.168.188.13RS1
node4192.168.188.14RS2
node5192.168.188.15RS3

2.  配置MASTER,BACKUP的Haproxy:

[root@node1 ~]# yum install haproxy -y

[root@node1 ~]# vim /etc/haproxy/haproxy.cfg

global
  log         127.0.0.1 local2
  chroot      /var/lib/haproxy
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  user        haproxy
  group       haproxy
  daemon

  stats socket /var/lib/haproxy/stats
  ssl-default-bind-ciphers PROFILE=SYSTEM
  ssl-default-server-ciphers PROFILE=SYSTEM

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

frontend main  ##前端配置
    bind *:80
    mode http
 
##配置ACL规则
    acl acl_www    hdr_dom(host) -i www.yunjisuan.cn
    acl acl_static hdr_dom(host) -i static.yunjisuan.cn
    acl acl_update hdr_dom(host) -i update.yunjisuan.cn
 
##引用ACL规则
    use_backend server_www             if acl_www
    use_backend server_static          if acl_static
    use_backend server_update          if acl_update
    default_backend  server_static

##配置后端主机
backend server_www
    balance     roundrobin
    server      web1 192.168.188.13:8080 check
 
backend server_static
    balance     roundrobin
    server      web2 192.168.188.14:80 check
 
backend server_update
    balance     roundrobin
    server      web3 192.168.188.15:80 check

listen stats  ##配置Haproxy状态页
    mode http
    bind 0.0.0.0:9999
    stats hide-version
    stats enable
    stats uri /haproxy-status
    stats auth admin:123456
    stats refresh 30s

3.  开启MASTER,BACKUP的Haproxy日志:

[root@node1 ~]# vim /etc/rsyslog.conf 

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

local2.*                                                /var/log/haproxy.log

[root@node1 ~]# systemctl restart rsyslog.service

4.  配置访问后端服务器的页面:

node3节点配置:
[root@node3 ~]# yum install tomcat tomcat-webapps -y

[root@node3 ~]# rm -rf /var/lib/tomcat/webapps/ROOT/*

[root@node3 ~]# vim /var/lib/tomcat/webapps/ROOT/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!doctype html>
<html>
 <head>
 <title>第一个 JSP 程序</title>
 </head>
 <body>
 <%
 out.println("Hello World!");
 %>
 <% java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat
("yyyy年MM月dd日");
    String strCurrentTime=formater.format(new java.util.Date());
 %>
 <%= strCurrentTime %>
</body>
</html>

[root@node3 ~]# systemctl start tomcat

node4节点配置:
[root@node4 ~]# echo "static page my ip is `hostname -I`" > /var/www/html/index.html 

[root@node4 ~]# systemctl start httpd.service 

node5节点配置:
[root@node5 ~]# echo "static page my ip is `hostname -I`" > /var/www/html/index.html 

[root@node5 ~]# systemctl start httpd.service

4.  配置主备Keepalived:

        1>.  配置MASTER节点的keepalived:

[root@node1 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL_MASTER
}
 
vrrp_script check_haproxy {
  ##检测方式一:
    script "killall -0 haproxy"
  ##检测方式二:
    #script "</dev/tcp/127.0.0.1/80"  ##使用端口检测的方式,haproxy运行时的端口就是80
    interval 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
 
    track_script {
      check_haproxy
    }
 
    virtual_ipaddress {
        192.168.188.100
    }
}

          2>.  配置BACKUP节点的keepalived:

[root@node2 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL_MASTER
}
 
vrrp_script check_haproxy {
  ##检测方式一:
    script "killall -0 haproxy"
  ##检测方式二:
    #script "</dev/tcp/127.0.0.1/80"  ##使用端口检测的方式,haproxy运行时的端口就是80
    interval 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
 
    track_script {
      check_haproxy
    }
 
    virtual_ipaddress {
        192.168.188.100
    }
}

5.  配置Windows的域名解析:修改" C:\Windows\System32\drivers\etc\hosts "文件。

在文件末尾添加:
192.168.188.100 www.yunjisuan.cn static.yunjisuan.cn update.yunjisuan.cn

6.  重启MASTER,BACKUP的Haproxy,Keepalived:

[root@node1 ~]# systemctl restart haproxy.service

[root@node1 ~]# systemctl restart keepalived.service

7.  测试Haproxy+Keepalived集群是否搭建成功:

        1>.  查看VIP是否在MASTER上,并且BACKUP上没有:

         2>.  停止MASTER上的keepalived,模拟高可用故障,观察VIP是否飘移:

         3>.  恢复MASTER的keepalived,并且通过浏览器访问域名,观察负载均衡是否正常:

         4>.  关闭MASTER上的Haproxy服务,观察VIP是否飘移,负载均衡是否正常:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: haproxy+keepalived是一种常见的负载均衡解决方案,haproxy是一款高性能的负载均衡软件,而keepalived则是一款用于实现高可用性的软件。通过将haproxykeepalived结合使用,可以实现负载均衡和高可用性的双重保障,从而提高系统的可靠性和稳定性。 ### 回答2: HAProxyKeepalived是两个常用的负载均衡解决方案。 HAProxy是一款高性能、稳定、开源的负载均衡软件,它提供了四种负载均衡算法,可以实现TCP和HTTP层的负载均衡,并支持SSL和ACL等高级功能。HAProxy使用事件驱动的异步I/O模型,可以处理成千上万个并发连接请求,达到高并发和高可用的目的。 而Keepalived是一个基于VRRP协议的高可用软件,它可以管理多个负载均衡器,实现负载均衡器的主备切换,从而保障服务的高可用性。通过把HAProxy运行在Keepalived的VIP(虚拟IP)上,实现对外提供服务的高可用性。 通常情况下,使用HAProxy单独部署时,需要考虑其高可用性的问题,例如应对服务器宕机、网络故障等突发情况。使用Keepalived可以实现对HAProxy的高可用性管理,当一台负载均衡器故障时,Keepalived可以自动将VIP指向另一台正常的负载均衡器上,保障服务的连续性。 总之,HAProxyKeepalived是两个功能强大、稳定可靠的负载均衡解决方案,它们可以实现对后端服务的负载均衡和高可用性管理。需要根据实际需求选择适合的解决方案,并进行合理的部署和配置,从而达到提高服务性能和保障连续性的目的。 ### 回答3: HAProxyKeepalived是常用的负载均衡软件和高可用性解决方案。HAProxy是一个高性能的负载均衡软件,可以根据请求的情况将请求转发给多个后端服务器,从而达到请求分散、负载均衡的效果。而Keepalived则是一个高可用性解决方案,它能够确保服务的持续可用性,当主服务器故障时,可以快速地切换到备份服务器,从而达到服务的高可用性。 HAProxyKeepalived可以配合使用,实现负载均衡和高可用性。在此方案中,HaProxy负责分发请求以及维护对后端服务器的连接,Keepalived负责检测服务器的状态,并及时切换集群中的主服务器,保证服务的高可用性。 当一个客户端向HAProxy发起请求时,HAProxy会根据配置的负载均衡算法将请求转发到后端的某个服务器上。同时,HAProxy会维护与后端服务器的长连接,保证请求可以快速地被分发。Keepalived则会持续地监测服务器的可用性,如果发现主服务器不可用,它会快速地将主服务器切换到备份服务器上,从而确保服务的持续可用性。 总的来说,HAProxyKeepalived的配合使用能够提高系统的稳定性和可靠性,同时还能提供更好的性能和可扩展性。这种方案已经被广泛地应用于大型Web应用、云厂商等领域中,可以帮助企业和用户提高业务的效率和可靠性,实现服务的更高级别的运维。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值