keepalived实现nginx高可用
作者:逍遥无谓 发布时间:2021-06-02 06:55:05
标签:keepalived,nginx,高可用
keepalived直译就是保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,keepalived实现的基础是vrrp,至于vrrp是什么请直接看这里vrrp,下面我们直接看应用吧。
keepalived使用
为了方便使用,写了一个基于ubuntu 16.04 server 的一键配置脚本,配置使用相关就在脚本里见吧
#!/bin/bash
# nginx+keepalived 高可用一键脚本for ubuntu 16.04
if [ $# -ne 4 ]; then
echo "USAGE: $0 [MASTER|BACKUP] priority interface virtual_ipaddress"
exit 0
fi
echo -e 'Installing nginx'
apt-get install nginx -y > /dev/null 2<&1
echo -e 'Installing keepalived'
apt-get install keepalived -y > /dev/null 2<&1
echo -e 'Configuring keepalived'
if [ ! -e /etc/keepalived ];then
mkdir /etc/keepalived
fi
cat > /etc/keepalived/keepalived.conf <<EOF
! Configuration File for keepalived
global_defs {
notification_email {
chencheng199211@gmail.com
}
notification_email_from email #表示发送通知邮件时邮件源地址是谁
smtp_server 127.0.0.1 #表示发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
smtp_connect_timeout 30
router_id master #机器标识
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2 #脚本执行间隔,单位秒
weight -5 #脚本结果导致的优先级变更:10表示优先级+10;-10则表示优先级-10
fall 3
rise 2
}
vrrp_instance VI_1 {
state $1 #state指定instance(Initial)的初始状态,就是说在配置好后,这台服务器的初始状态就是这里指定的,但这里指定的不算,还是得要通过竞选通过优先级来确定,里如果这里设置为master,但如若他的优先级不及另外一台,那么这台在发送通告时,会发送自己的优先级,另外一台发现优先级不如自己的高,那么他会就回抢占为master
interface $3 #实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的
virtual_router_id 51 #这里设置VRID,这里非常重要,相同的VRID为一个组,他将决定多播的MAC地址
priority $2 #设置本节点的优先级,优先级高的为master
advert_int 2 #检查间隔,默认为1秒
authentication { #这里设置认证
auth_type PASS #认证方式,可以是PASS或AH两种认证方式
auth_pass 1111 #认证密码
}
virtual_ipaddress { #这里设置的就是VIP,也就是虚拟IP地址,他随着state的变化而增加删除,当state为master的时候就添加,当state为backup的时候删除,这里主要是有优先级来决定的,和state设置的值没有多大关系,这里可以设置多个IP地址
$4
}
track_script {
chk_nginx
}
#dont_track_primary:忽略VRRP的interface错误
#track_interface:跟踪接口,设置额外的监控,里面任意一块网卡出现问题,都会进入故障(FAULT)状态,例如,用nginx做均衡器的时候,内网必须正常工作,如果内网出问题了,这个均衡器也就无法运作了,所以必须对内外网同时做健康检查
#mcast_src_ip:发送多播数据包时的源IP地址,这里注意了,这里实际上就是在那个地址上发送VRRP通告,这个非常重要,一定要选择稳定的网卡端口来发送,这里相当于heartbeat的心跳端口,如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
#garp_master_delay:在切换到master状态后,延迟进行免费的ARP(gratuitous ARP)请求
#virtual_routes:原理和virtual ipaddress一样,只不过这里是增加和删除路由
#lvs_sync_daemon_interface:lvs syncd绑定的网卡
#nopreempt:设置不抢占,这里只能设置在state为backup的节点上,而且这个节点的优先级必须别另外的高。当主mysql恢复后不抢占资源
#preempt_delay:抢占延迟
#debug:debug级别
#notify_master:表示当切换到master状态时,要执行的脚本
#notify_backup:表示当切换到backup状态时,要执行的脚本
#notify_fault:
}
EOF
cat > /etc/keepalived/check_nginx.sh <<EOF
#!/bin/bash
# description:
# 定时查看nginx是否存在,如果不存在则启动nginx
# 如果启动失败,则停止keepalived
status=$(ps -C nginx --no-heading | wc -l)
if [ "${status}" = "0" ]; then
service nginx start
sleep 2
status2=$(ps -C nginx --no-heading | wc -l)
if [ "${status2}" = "0" ]; then
/etc/init.d/keepalived stop
fi
fi
EOF
echo -e "enable boot and starting"
service keepalived start
service nginx start
来源:http://www.cnblogs.com/learningchencheng/p/7716945.html
0
投稿
猜你喜欢
- 当标题的长度超过限制,就会在后面自动添加 ...可以通过修改下面的文件来取消显示 省略号 分别打开:\module\a
- 虽然这些年来,每一个新发布的新版Exchange Server都保留了先前版本的一些特征,但是某些版本和其他的版本相比较而言,还是有了更多的
- 据国外媒体报道,上周在北京举行的国际万维网大会上,两位Google的工程师展示了下一代的图片搜索。值得注意的是,新的图片搜索不再只是由图片相
- 10月27日消息,阿里巴巴CEO马云在《纽约时报》发表署名文章,就如何支持小企业等问题进行了阐述,以下是全文:全球经济衰退的来袭令许多国际企
- Windows7(vista)系统自带的iis7.0(7.5),有很多新的功能让人耳目一新,在这里让我们看看IIS7是如何继续支持ASP的.
- 青春可人的照片数不胜数,变变花样,玩玩颓废来张另类的酷酷造型。现在不用大费周章的跑到影楼里花上大几千的票子,只需要用“美
- 介绍Docker是一个应用程序,它使得在容器中运行应用程序进程变得简单和容易,这类应用程序就像虚拟机,只有更便携,更加资源友好,更依赖于主机
- 今天我们来研究一下网站广告如何选择,,或者直接说就是那些网站适合做google的广告站长建站选择好的题材,好的内容也是相当重要的如果你已经选
- 动态链接库与普通的程序相比而言,没有main函数,是一系列函数的实现。通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库
- 前言系统cpu飙高,尤其对于后端人员来说,其实应该学会排查,这样也算是综合能力的体现;那么当出现了cpu严重飙高的时候怎么排查呢?一、第一步
- 据国外媒体报道,谷歌程序员已经克服了Mac Chrome测试版最大的障碍——打印支持,但Window
- 北京时间6月19日上午消息,据Mozilla基金会统计,Firefox 3正式推出后24小时内下载次数已经超过800万,这也是自Firefo
- 很多站长都挂上了联盟的广告来赢利,而联盟大多都以百度、GG为主,站长们在通过了审核之后,放好广告,并想尽办法的去优化,以求获得更好的点击率,
- 众所周知,QQ空间的人气很高,那作为站长的我们能否利用QQ的高人气呢?答案是肯定的!虽然QQ空间带来的反链效果很差,但带来的流量却相当可观!
- 速推网站长:发现现在的很多青少年在网络上玩一种叫作“偷菜”的游戏。有些人玩的至于到了一种痴迷的境界。
- 一般来说我们采用手动备份VPS中的网站就可以了。一般老左喜欢1周备份一次网站,这样的频率应该还算是不错的,对于昨天分享的”数据库/网站文件自
- 2003服务器安全攻略(不会做服务器安全的站长请进)windows server2003是目前最为成熟的网络服务器平台,安全性相对于wind
- 好久没有更新了,近期我会把手里在Azure遇到的一些问题,分享给大家没有太多的虚言,一些实际干货,今主要介绍一下,Azure平台的Linux
- 这个是今天刚听董事长在学院十年的什么会议上的报告里听到的话:(简化一下,因为不甚重要,仅做引子) 我们JJ学院,一直奉
- 世界上没有绝对安全的系统,即使是普遍认为稳定的Linux系统,在管理和安全方面也存在不足之处。我们期望让系统尽量在承担低风险的情况下工作,这