准备工作

分别在主从上安装keepalived和nginx
yum install -y keepalived
yum install -y nginx
关闭主从上的防火墙和SELinux
systemctl stop firewalld
setenforce 0

配置主机

查看主机ip

[root@lynn-04 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.130.116  netmask 255.255.255.0  broadcast 192.168.130.255inet6 fe80::181c:4847:3f62:dc4c  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:60:ed:4a  txqueuelen 1000  (Ethernet)RX packets 11701  bytes 10394449 (9.9 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 13559  bytes 972155 (949.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 86  bytes 6720 (6.5 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 86  bytes 6720 (6.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

清空主上keepalived配置文件/etc/keepalived/keepalived.conf

[root@lynn-04 ~]# > /etc/keepalived/keepalived.conf

编辑主上配置文件/etc/keepalived/keepalived.conf

[root@lynn-04 ~]# vim /etc/keepalived/keepalived.conf

加入以下内容:

global_defs {notification_email {aming@aminglinux.com}notification_email_from root@aminglinux.comsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL
}
vrrp_script chk_nginx {script "/usr/local/sbin/check_ng.sh"interval 3
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass aminglinux>com}virtual_ipaddress {192.168.130.100}track_script {chk_nginx}
}

定义主上监控脚本/usr/local/sbin/check_ng.sh

[root@lynn-04 ~]# vim /usr/local/sbin/check_ng.sh

写入下面内容

#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then/etc/init.d/nginx startn2=`ps -C nginx --no-heading|wc -l`if [ $n2 -eq "0"  ]; thenecho "$d nginx down,keepalived will stop" >> /var/log/check_ng.logsystemctl stop keepalivedfi
fi

更改主上/usr/local/sbin/check_ng.sh权限

[root@lynn-04 ~]# chmod 755 /usr/local/sbin/check_ng.sh

启动主上keepalived

[root@lynn-04 ~]# systemctl start keepalived
[root@lynn-04 ~]# ps aux |grep keepalived
root       1741  0.0  0.1 120740  1404 ?        Ss   10:46   0:00 /usr/sbin/keepalived -D
root       1742  0.0  0.3 127476  3260 ?        S    10:46   0:00 /usr/sbin/keepalived -D
root       1745  0.0  0.3 131780  3116 ?        S    10:46   0:00 /usr/sbin/keepalived -D
root       1799  0.0  0.0 112676   988 pts/0    S+   10:47   0:00 grep --color=auto keepalived

为了区分主从的nginx需要把nginx的默认页做个标记

[root@lynn-04 ~]# echo master > /data/wwwroot/default/index.html

在另一台机器使用从ip访问
得到下面结果

[root@lynn-02 ~]# curl 192.168.130.116
master

配置从机

查看从机ip

[root@lynn-06 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.130.128  netmask 255.255.255.0  broadcast 192.168.130.255inet6 fe80::fef6:fd37:2682:fabc  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:af:03:e8  txqueuelen 1000  (Ethernet)RX packets 45666  bytes 48434560 (46.1 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 14753  bytes 1287938 (1.2 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 80  bytes 6256 (6.1 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 80  bytes 6256 (6.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

清空从上配置文件/etc/keepalived/keepalived.conf

[root@lynn-06 ~]# > /etc/keepalived/keepalived.conf

编辑从上配置文件/etc/keepalived/keepalived.conf

[root@lynn-06 ~]# vim /etc/keepalived/keepalived.conf

加入下面内容

global_defs {notification_email {aming@aminglinux.com}notification_email_from root@aminglinux.comsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL
}
vrrp_script chk_nginx {script "/usr/local/sbin/check_ng.sh"interval 3
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass aminglinux>com}virtual_ipaddress {192.168.130.100}track_script {chk_nginx}
}

定义从上监控脚本/usr/local/sbin/check_ng.sh

[root@lynn-06 ~]# vim /usr/local/sbin/check_ng.sh

加入下面内容

#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; thensystemctl start nginxn2=`ps -C nginx --no-heading|wc -l`if [ $n2 -eq "0"  ]; thenecho "$d nginx down,keepalived will stop" >> /var/log/check_ng.logsystemctl stop keepalivedfi
fi

更改从上/usr/local/sbin/check_ng.sh权限

[root@lynn-06 ~]# chmod 755 /usr/local/sbin/check_ng.sh

启动从上keepalived

[root@lynn-06 ~]# systemctl start keepalived
[root@lynn-06 ~]# ps aux |grep keepalived
root       3589  0.0  0.1 120740  1400 ?        Ss   11:03   0:00 /usr/sbin/keepalived -D
root       3590  0.0  0.3 127476  3260 ?        S    11:03   0:00 /usr/sbin/keepalived -D
root       3591  0.0  0.3 131780  3124 ?        S    11:03   0:00 /usr/sbin/keepalived -D
root       3680  0.0  0.0 112676   988 pts/0    S+   11:03   0:00 grep --color=auto keepalived

为了区分主从的nginx需要把nginx的默认页做个标记

[root@lynn-06 ~]# echo backup > /usr/share/nginx/html/index.html

在另一台机器使用从ip访问
得到下面结果

[root@lynn-02 ~]# curl 192.168.130.128
backup

测试高可用

首先在主从keepalived都开启的情况下查看得到vip在主机上 使用另一台机器通过vip访问得到master

然后在主机keepalived关闭的情况下查看得到vip在从机上 使用另一台机器通过vip访问得到backup

再次开启主机的keepalived情况下查看得到vip又回到主机上 使用另一台机器通过vip访问得到master

转载于:https://blog.51cto.com/10963213/2095995

keepalived配置高可用集群相关推荐

  1. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

  2. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

    集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...

  3. 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 一 集群介绍 1.概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供 ...

  4. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...

  5. 集群介绍+用keepalived配置高可用集群(总结)

    1.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用集群,英文原文为High Availa ...

  6. 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...

  7. 用Keepalived搭建高可用集群

    一.集群介绍 1.根据功能划分为两大类:高可用和负载均衡 2.高可用:一台工作,另一台冗余,当一台服务器故障宕机时,另一台服务器提供服务.开源软件有heartbeat,keepalived. 3.负载 ...

  8. Nginx+Keepalived+LVS高可用集群----相关知识回顾

    1.原理回顾 1.1.集群知识回顾 集群特点: 1)高性能performance. 一些需要很强的运算处理能力比如天气预报,核试验等.这需要上千台计算器协同来完成这个工作的,共同分担计算任务. 2)价 ...

  9. keepalived mysql集群_mysql双主+keepalived实现高可用集群

    master-a端: 1)安装keepalived [[email protected] ~]# [[email protected] ~]# yum install keepalived 安装kee ...

最新文章

  1. C/C++笔试、面试题
  2. linux安装mysql5.7.25教程,Linux安装mysql-5.7.25
  3. silverlight + wcf(json格式) + sqlserver存储过程分页
  4. 计算圆弧与矩形相交_【技术】新型七层矩形卷边工艺实践
  5. 网络地址转换协议NAT详解
  6. Android平台的通话计时源码
  7. PHP 23种设计模式
  8. 【计算机网络】网络通信基础
  9. 期末作业代码网页设计代码——花店购物网站源码(27页) 学生动花店购物页设计模板下载 植物大学生HTML网页制作作品 简单网页设计成品 dreamweaver学生网站模板
  10. 安装11.2.0.3时,OUI的log报错:OUI-10066:Not All The Dependencies For The Component ... Could Be Found
  11. android4.1.1+nexus S安装BT5
  12. 把数字翻译成中文的计算机,数字翻译成中文,把数字翻译成中文
  13. 分布式算法 Paxos 的直观解释 (TL;DR)
  14. 联发科技嵌入式_从机械到嵌入式开发,一个研究僧的联发科实习经验分享
  15. 第二章—v-directive自定义指令
  16. 图标、协同办公等新素材上线,100%实用!
  17. 自定义Android聊天气泡ChatView。仿微信聊天气泡,能自定义边框,颜色,点击特效。
  18. 言语如何成为交互设计的基础
  19. 自动驾驶基础知识(一)——英文缩写(持续更新...)
  20. 【计算机毕设】Java课程设计

热门文章

  1. 西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...
  2. 从尾到头打印单链表(C语言)
  3. matlab 读取mov文件格式,VideoReader 支持的文件格式 - MATLAB VideoReader.getFileFormats - MathWorks 中国...
  4. php session页面传值,PHP session在页面间传递的问题
  5. 吃下去的东西老是往上翻上来_食管裂孔疝的这个诱因你知道吗?医生:不要再吃过烫的食物...
  6. linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)
  7. python多进程传递参数_急急急, Python 多进程,如何传递 epoll?
  8. 在java程序中定义的类有两种成员_java试题 急需答案 谢谢!!!
  9. JavaBean和Servlet
  10. 简单java在线测评程序