系统:centos6.9 mini

主机名    ip                                虚拟ip

kh1     192.168.126.210

kh2     192.168.126.220                     192.168.126.100

web11   192.168.126.230

web22   192.168.126.240

1、在kh1和kh2安装keepalived和haproxy

[root@kh1 ~]# yum install -y keepavlivd haproxy

[root@kh2 ~]# yum install -y keepavlivd haproxy

2、在web1和web2上部署web服务

[root@web11 ~]# yum install -y httpd

[root@web11 ~]# echo "web1">/var/www/html/index.html

[root@web11 ~]# service httpd restart

[root@web11 ~]# chkconfig httpd on

[root@web22 ~]# yum install -y httpd

[root@web22 ~]# echo "web2">/var/www/html/index.html

[root@web22 ~]# service httpd restart

[root@web22 ~]# chkconfig httpd on

3、在kh1和kh2 配置keepalived,在kh1上查看虚拟ip

[root@kh1 ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id kh1

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.126.100

}

}

[root@kh1 ~]# /etc/init.d/keepalived restart

[root@kh1 ~]# ip addr list

link/ether 00:0c:29:da:01:36 brd ff:ff:ff:ff:ff:ff

inet 192.168.126.210/24 brd 192.168.126.255 scope global eth0

inet 192.168.126.100/32 scope global eth0

[root@kh2 ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id kn2

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.126.100

}

}

[root@kh2 ~]# /etc/init.d/keepalived restart

4、在kh1和kh2上配置haproxy(两个节点的配置一样的,红色部分为添加部分)

[root@kh1 ~]# cat /etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------

# Example configuration for a possible web application.  See the

# full configuration options online.

#

#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

#

#---------------------------------------------------------------------

#---------------------------------------------------------------------

# Global settings

#---------------------------------------------------------------------

global

# to have these messages end up in /var/log/haproxy.log you will

# need to:

#

# 1) configure syslog to accept network log events.  This is done

#    by adding the '-r' option to the SYSLOGD_OPTIONS in

#    /etc/sysconfig/syslog

#

# 2) configure local2 events to go to the /var/log/haproxy.log

#   file. A line like the following can be added to

#   /etc/sysconfig/syslog

#

#   local2.*                       /var/log/haproxy.log

#

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

#---------------------------------------------------------------------

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

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               /haproxy-stats    #监控页面的url

stats refresh           30s             #更新页面时间

stats auth              admin:admin    #监控页面的提示信息

stats hide-version                       #隐藏统计页面上的HAproxy版本信息

#---------------------------------------------------------------------

# main frontend which proxys to the backends

#---------------------------------------------------------------------

frontend  http_80_in

bind *:80       #监听端口,即haproxy提供web服务的端口,和lvs的vip端口类似

mode http    #http的7层模式

log global

default_backend      test1

#---------------------------------------------------------------------

# static backend for serving up images, stylesheets and such

#---------------------------------------------------------------------

#backend static

#    balance     roundrobin

#---------------------------------------------------------------------

# round robin balancing between the various backends

#---------------------------------------------------------------------

backend  test1

balance     roundrobin

server        web11 192.168.126.230:80 weight 1 check inter 15000 rise 2 fall 4

server      web22 192.168.126.240:80 weight 2 check inter 15000 rise 2 fall 4

#web集群配置,服务器定义web11,webv22 ,check inter 1500是检测心跳频率rise 2是2次正确认为服务器可用,

fall 4是4次失败认为服务器不可用,weight代表权重

[root@kh1 ~]# scp /etc/haproxy/haproxy.cfg root@192.168.126.220:/etc/haproxy/haproxy.cfg

#复制配置文件到kh2上

[root@kh1 ~]# /etc/init.d/haproxy restart

[root@kh2 ~]# /etc/init.d/haproxy restart

5、验证

5.1 在kh1上关掉keepalived和haproxy 服务,vip 转移到kh2上,后端服务正常

[root@kh1 ~]# /etc/init.d/keepalived stop

Stopping keepalived:                                       [  OK  ]

[root@kh1 ~]# /etc/init.d/haproxy stop

Stopping haproxy:

[root@kh2 ~]# ip addr list

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

link/ether 00:0c:29:80:2e:09 brd ff:ff:ff:ff:ff:ff

inet 192.168.126.220/24 brd 192.168.126.255 scope global eth0

inet 192.168.126.100/32 scope global eth0

inet6 fe80::20c:29ff:fe80:2e09/64 scope link

valid_lft forever preferred_lft forever

[root@kh2 ~]# curl http://192.168.126.100

web2

[root@kh2 ~]# curl http://192.168.126.100

web2

[root@kh2 ~]# curl http://192.168.126.100

web1

5.2 访问haproxy 监控页面,最浏览器输入http://192.168.126.100/haproxy-stats  ,填入用户名admin和密码admin(图一),接着看到的是监控的页面(图二),可以看到web11,web2都是up的,当web11 宕机了,再次刷新,可以看到web11的状态是down 的,颜色变成了红色(图三)

图一

图二

图三

主备(keepalived+haproxy)的更多相关文章

  1. Keepalived 主备配置

    keepalived主备或多主多备,配置都是一样配置方法,只是搭建多少的问题. 1.keepalived安装 参考:https://www.cnblogs.com/zwcry/p/9542867.ht ...

  2. Centos7.6部署k8s v1.16.4高可用集群(主备模式)

    一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...

  3. haproxy+keepalived主备与双主模式配置

    Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...

  4. 二十七. Keepalived热备 Keepalived+LVS 、 HAProxy服务器

    1.Keepalived高可用服务器 proxy:192.168.4.5(客户端主机) web1:192.168.4.100(Web服务器,部署Keepalived高可用软件) web2:192.16 ...

  5. KeepAlived主备/主主模型高可用Nginx

    部署准备: 两台CentOS 7主机HA1和HA2 CentOS 7 基于rpm包安装Nginx: 由于Base源中没有Nginx,所以要安装EPEL源,命令如下: wget http://dl.fe ...

  6. KeepAlived主备模型高可用LVS

    部署前准备: 1.至少4台主机:两个Director(HA1,HA2),两个Real Server(RS1,RS2) 2.Director之间时间必须同步,且关闭各主机的防火墙和Selinux 3.出 ...

  7. keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群

    keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群 内网路由都用mac地址 一个mac地址绑定多个ip一个网卡只能一个mac地址,而且mac地址无法改,但 ...

  8. Nginx+Keepalived主备切换(包含nginx服务停止)

    原文地址:http://blog.sina.com.cn/s/blog_79ac6aa80101bmed.html Nginx+Keepalived主备切换(包含nginx服务停止) 环境: VM中4 ...

  9. 测试redis+keepalived实现简单的主备切换【转载】

    转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 ...

  10. Nginx+Keepalived 主备高可用 安装与配置

    环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...

随机推荐

  1. HDU2973(威尔逊定理)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. YUI 阻止动态css加载

    skinnable动态加载 在YUI Module中,经常采用skinnable参数来动态加载css,如: YUI().use('w-paginator', function(Y) { }, requ ...

  3. 浏览器与CDN缓存行为

    @地址栏回车 1. 未过期: 浏览器拦截,直接返回: (expires/cache-control两个参数决定,如果两个参数都有,cache-control覆盖expires); 2. 已过期: et ...

  4. YourPHP笔记

    http://blog.sina.com.cn/s/blog_7c54793101016qq1.htm 基础认识: Ø  yourphp安装为子目录时不可以以"yourphp"为文 ...

  5. Eclipse版本

    Eclipse  3.1  IO 木卫一,伊奥                       2005Eclipse  3.2  Callisto 木卫四,卡里斯托        2006Eclipse ...

  6. Angular CLI: 发布到 GitHub Pages

    发布 Angular 应用的简单方式是使用 GitHub Pages. 首先需要创建一个 GitHub 账号,随后,为您的项目创建一个仓库.记下 GitHub 中的用户名和项目名称. 例如,我的 Gi ...

  7. 关于Spring的69个面试题

    这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的.下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答. 大多数你可能被问到的问题都 ...

  8. SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

    现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...

  9. ASP.NET没有魔法——ASP.NET MVC 模型绑定

    在My Blog中已经有了文章管理功能,可以发布和修改文章,但是对于文章内容来说,这里缺少最重要的排版功能,如果没有排版的博客很大程度上是无法阅读的,由于文章是通过浏览器查看的,所以文章的排版其实与网 ...

  10. list类型

    list是一个链表结构,可以模拟栈,队列 lpush list中压入一个元素   模拟栈 lrange  取出list的中的元素(0 -1 表示从头取到尾) rpush list中压入一个元素   模 ...