之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置。

由之前的配置信息可知:
master机器(master-node):103.110.98.14/192.168.1.14      VIP1:103.110.98.20
slave机器(slave-node):103.110.98.24/192.168.1.24       VIP2:103.110.98.21

主主模式需要两个负载均衡的VIP,
之前设置了VIP(103.110.98.20)
所以还需要设置另一个VIP(103.110.98.21)

修改keepalived的配置

1)master负载机上的keepalived配置:(注意,这里是双主配置,MASTER-BACKUP和BACKUP-MASTER;如果是多主,比如三主,就是MATER-BACKUP-BACKUP、BACKUP-MASTER-BACKUP和BACKUP-BACKUP-MASTER)
注意:
配置中的虚拟路由标识virtual_router_id在MASTER和BACKUP处配置不能一样(但在主从模式下配置是一样的)

[root@master-node ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
notification_email {
ops@wangshibo.cn
tech@wangshibo.cn
} notification_email_from ops@wangshibo.cn
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id master-node
} vrrp_script chk_http_port {
script "/opt/chk_nginx.sh"
interval 2
weight -5
fall 2
rise 1
} vrrp_instance VI_1 {
state MASTER
interface em1
mcast_src_ip 103.110.98.14
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_http_port
} virtual_ipaddress {
103.110.98.20
} notify_master "/etc/keepalived/clean_arp.sh 103.110.98.20"
} vrrp_instance VI_2 {
state BACKUP
interface em1
mcast_src_ip 103.110.98.24
virtual_router_id 52
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_http_port
}
virtual_ipaddress {
103.110.98.21
}
notify_master "/etc/keepalived/clean_arp.sh 103.10.86.21"
}

[root@master-node ~]# vim /etc/keepalived/clean_arp.sh         //更新vip的arp记录到网关(注意脚本中的网卡别填错了,要跟vip所在网卡一致)
#!/bin/sh
VIP=$1
GATEWAY=103.110.98.1                                                         //负载均衡器的公网网关地址
/sbin/arping -I em1 -c 5 -s $VIP $GATEWAY &>/dev/null
[root@master-node ~]# chmod 755 /etc/keepalived/clean_arp.sh

2)slave负载机上的keepalived配置:

[root@slave-node ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
notification_email {
ops@wangshibo.cn
tech@wangshibo.cn
} notification_email_from ops@wangshibo.cn
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id slave-node
} vrrp_script chk_http_port {
script "/opt/chk_nginx.sh"
interval 2
weight -5
fall 2
rise 1
} vrrp_instance VI_1 {
state BACKUP
interface em1
mcast_src_ip 103.110.98.14
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_http_port
} virtual_ipaddress {
103.110.98.20
} notify_master "/etc/keepalived/clean_arp.sh 103.110.98.20"
} vrrp_instance VI_2 {
state MASTER
interface em1
mcast_src_ip 103.110.98.24
virtual_router_id 52
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_http_port
}
virtual_ipaddress {
103.110.98.21
}
notify_master "/etc/keepalived/clean_arp.sh 21"
}

[root@slave-node ~]# vim /etc/keepalived/clean_arp.sh
#!/bin/sh
VIP=$1
GATEWAY=103.110.98.1
/sbin/arping -I em1 -c 5 -s $VIP $GATEWAY &>/dev/null
[root@slave-node ~]# chmod 755 /etc/keepalived/clean_arp.sh

重启master和slave负载机的keepalive(保证两台机器的ngixn和keepalived服务都启动)
[root@master-node ~]# /etc/init.d/keepalived restart
[root@slave-node ~]# /etc/init.d/keepalived restart

将nginx中配置的域名解析到这两个VIP地址上:
103.110.98.20 dev.wangshibo.com
103.110.98.21 dev.wangshibo.com

浏览器访问是正常的(如果master或slave有一台宕机,或其中一个VIP故障,只要另一台是正常的就行)

关闭两台负载机其中一台的keepalived服务,那么它的VIP就会自动漂移到另一台机器上。
关闭两台机器的nginx,会自动重启(前提是keepalived服务要启动)!对网站域名的访问丝毫不受影响。

[root@master-node ~]# pkill -9 nginx
root 32365 9775 0 19:04 pts/0 00:00:00 grep --color=auto nginx
[root@master-node ~]# ps -ef|grep nginx
root 32367 9775 0 19:04 pts/0 00:00:00 grep --color=auto nginx
[root@master-node ~]# ps -ef|grep nginx
root 32369 32368 0 19:04 ? 00:00:00 /bin/bash /opt/chk_nginx.sh
root 32374 1 0 19:04 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
www 32376 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32377 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32378 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32379 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32380 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32381 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32382 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32383 32374 1 19:04 ? 00:00:00 nginx: worker process
www 32384 32374 0 19:04 ? 00:00:00 nginx: cache manager process
www 32385 32374 0 19:04 ? 00:00:00 nginx: cache loader process
root 32387 9775 0 19:04 pts/0 00:00:00 grep --color=auto nginx

Nginx+keepalived双机热备(主主模式)的更多相关文章

  1. Nginx+keepalived 双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  2. Nginx+keepalived双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  3. Nginx+keepalived 双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  4. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  5. nginx + keepalived 双机热备

    序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...

  6. Nginx+keepalived双机热备(默认路径安装)- 基础篇

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  7. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  8. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)-转帖篇

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  9. Nginx+Keepalived双机热备

    一.Keepalived Keepalived是保证集群高可用的服务软件.网络中优先级高的节点为master负责响应VIP的ARP包,将VIP和MAC地址映射关系告诉网络内其他主机,还会以多播的形式向 ...

随机推荐

  1. sqlite原子提交原理

    英文地址 文章参考 简介 支持事务的数据库系统如sqlite的一个重要特性是原子提交(atomic commit).也就是在一个事务中进行的对数据库的写操作要么全部执行,要么全部不执行.看起来像是对数 ...

  2. 根据字符串生成类---类的类型.self---根据字符串创建控制器对象

    swift和OC一样,都是通过NSClassFromString,根据一个字符串,生成相应的类. // UITabBarButton是系统的私有类,不能直接使用 // if btn.isKind(of ...

  3. Jquery导航悬停点击及首页图片切换功能

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx. ...

  4. 手机影音1--SplashActivity

    /** * 1.设置被启动的Activity为单例模式 */ public class SplashActivity extends Activity { /** * 是否已经启动主页面 */ pri ...

  5. 三种经典iPhone上网络抓包方法详解

    此文章来自:听云博客 很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式.分析工具以wireshark为例. 一.最简单的方式:用PC作为热点,在PC上抓包 优点:简单 缺 ...

  6. UITableView相关知识点

    //*****UITableView相关知识点*****// 1 #import "ViewController.h" // step1 要实现UITableViewDataSou ...

  7. 网络热恋之SDWebImage

    SDWebImage-master 是一个非常强大的三方. 当需要应用SDWeb时把文件夹里的SDWebImage文件夹放入工程里. 在需要使用网络获取图片的文件里进入头文件#import " ...

  8. IT行业常见职位职业路线图

    我曾经面试过一些计算机相关毕业的应届生,问他希望做什么工作时,他回答只要是软件开发就好了,再细问一下你了解到的软件开发是怎样的?除了软件开发,还有其它什么工作?就答不出来了. 这里我先给出一张IT知识 ...

  9. yii2超好用的日期组件和时间组件

    作者:白狼 出处:http://www.manks.top/yii2_datetimepicker.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 ...

  10. Mac上打开拷贝到移动硬盘里的文件提示“已经被osx使用不能打开”解决办法

    在终端里面粘贴xattr -d com.apple.FinderInfo(此处按一下空格),然后把文件拖进终端窗口,按一下回车就好了