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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“keepalived实现nginx高可用”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]