keepalived单主模型和nginx双主模型

主程序:keepalived

主配置文件:/etc/keepalived/keepalived.conf

单主模型ipvs:

global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 14
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 571f97b2
}
virtual_ipaddress {
10.1.0.93/16 dev eno16777736
}
notify_master “/etc/keepalived/notify.sh master”
notify_backup “/etc/keepalived/notify.sh backup”
notify_fault “/etc/keepalived/notify.sh fault”
}
virtual_server 10.1.0.93 80 {
delay_loop 3
lb_algo rr
lb_kind DR
protocol TCP
sorry_server 127.0.0.1 80
real_server 10.1.0.69 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
}
real_server 10.1.0.71 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
}
}

双主模型nginx:

global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_script chk_down {
script “[[ -f /etc/keepalived/down ]] && exit 1 || exit 0”
interval 1
weight -5
}
vrrp_script chk_nginx {
script “killall -0 nginx && exit 0 || exit 1”
interval 1
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 14
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 571f97b2
}
virtual_ipaddress {
172.16.0.99/16 dev ens33
}
track_script {
chk_down
chk_nginx
}
notify_master “/etc/keepalived/notify.sh master”
notify_backup “/etc/keepalived/notify.sh backup”
notify_fault “/etc/keepalived/notify.sh fault”
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 24
priority 96
advert_int 1
authentication {
auth_type PASS
auth_pass 571errrb2
}
virtual_ipaddress {
172.16.0.98/16 dev ens33
}
track_script {
chk_down
chk_nginx
}
notify_master “/etc/keepalived/notify.sh master”
notify_backup “/etc/keepalived/notify.sh backup”
notify_fault “/etc/keepalived/notify.sh fault”
}

示例通知脚本:

#!/bin/bash
#
contact=’root@localhost’
notify() {
mailsubject=”$(hostname) to be $1, vip floating”
mailbody=”$(date +’%F %T’): vrrp transition, $(hostname) changed to be $1″
echo “$mailbody” | mail -s “$mailsubject” $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo “Usage: $(basename $0) {master|backup|fault}”
exit 1
;;
esac

原创文章,作者:z long,如若转载,请注明出处:http://www.178linux.com/84220

(1)
z longz long
上一篇 2017-08-08 13:48
下一篇 2017-08-08 14:07

相关推荐

  • 编译安装httpd-2.2.27.tat.gz及配置常见参数

    一、编译安装的整体步骤  1、在官网下载源码,并解压 2、切换到其目录中  3、执行./configure 4、编译   二、编译中及安装后配置常见的参数及其说明 编译中配置 1)指定安装路径 –prefix=/usr/local/Pacakage_name  指定安装路径 –sysc…

    Linux干货 2016-08-24
  • bash脚本进阶

    case  变量引用  in PAT1)分支1 ;; PAT2)  分支2 ;; … *) 分支n ;; esac case支持glob风格的通配符:   *:任意长度任意字符: ?:任意单个字符: [ ]:指定范围内的任意单个字符: a|b:a或b function:函数   &nbs…

    Linux干货 2017-05-21
  • 马哥教育30期学员开学典礼

         早上背上书包去学校报到,很有一番学生时期去新学校的感觉,既兴奋又紧张,一段新的人生历程即将开始。      大学时曾经劝说我的同学别逃选修课,我说也许你苦学四年的专业比不上一节选修课对你的将来更有用,如今我却用亲身经历验证了这句话,我是通过大学的一堂选修课了解的Linux系统,开源软件,没想到多年后今天的我竟然也要入这行了。       到教室后,…

    2018-03-26
  • 在马帮的宣言

    好好学习,在这半年时间让自己的道路上再迈出一大步

    Linux干货 2016-10-28
  • 网络管理之基本概念

    本章内容     网络概念     OSI模型     网络设备     TCP/IP     IP 地址     配置…

    Linux干货 2016-09-08
  • Linux基础命令 -管道密切配合使用 tee

    基础命令和管道密切配合使用  tee     基础命令:tee   tee命令 功能: 把命令1的STDOUT保存在文件名中,然后管道输入给命令2; 补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 使用场景: 1.保存不同阶段的输出 2.复杂管道的故障排除 3.同时查看和记录…

    Linux干货 2016-08-03