和nginx主从安装配置都一样   就是配置文件 多加个vip  里面具体要改的 请看下面的配置文件

直接master1上keepalived.conf配置文件内容:

! Configuration File for keepalived
global_defs {
notification_email {
wgkgood@163.com
}
notification_email_from wgkgood@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/data/sh/check_nginx.sh"
interval 2
weight 2
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 100
advert_int 5
nopreempt
authentication {
auth_typePASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.188
}
track_script {
chk_nginx
}
}
# VIP2
vrrp_instance VI_2 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 152
priority 90
advert_int 5
nopreempt
authentication {
auth_typePASS
auth_pass 2222
}
virtual_ipaddress {
192.168.1.189
}
track_script {
chk_nginx
}
}

在另外一台服务器1.118上同样配置,只需要把相应的state对改就OK,把原先的master改成backup,把backup改成master即可,然后在两台服务器分别启动keepalived服务即可,然后访问两个VIP即可。

最后需要在两台Nginx主服务器上配置/data/sh/check_nginx.sh脚本,内容如下:
#!/bin/bash
#auto check nginx process
killall -0 nginx
if
[[ $? -ne 0 ]];then
/etc/init.d/keepalived stop
fi

双主就是两台nginx主主都有绑定vip

如下图情况,两个VIP在一台服务器,是由于其中一台nginx服务器down机,VIP都漂移到本机网卡下。(这里有一点好处:这样就是基于DNS负载均衡模式 因为有两个vip做了dns域名解析 两个vip来回循用,就算其中一台down了 ,也可以解约vip飘逸的时间了)

双主在企业实施中需要注意的地方:

1、配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也同样需要注意。

2、网站总访问量为两台Nginx之和,可以写脚本实现。

3、两个VIP存在后,外网如果需要访问,需要做域名映射到两个VIP上即可。

4、这样就是基于DNS负载均衡模式。

需要配置监控实时监控VIP访问状态是否正常。

nginx+keepalived互为主主高可用配置的更多相关文章

  1. Nginx+keepalived实现负载均衡高可用配置

    1. 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均衡服务 ...

  2. Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡

    周末的时候一个正在学Linux的朋友问我,高可用怎么玩?我和他微信了将近三个小时,把Nginx和haproxy双主高可用教给他了,今天突然想把这个给写进博客里,供给那些正在学习Linux系统的朋友们, ...

  3. MariaDB+Keepalived双主高可用配置MySQL-HA

    利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. ...

  4. 基于keepalived对redis做高可用配置---转载

    关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 1 ...

  5. Nginx+Keepalived实现web服务器高可用

    1.Nginx 业务背景 现公司需求快速搭建web服务器,对外提供给用户web服务. 需求拆分 需要基于http协议的软件,搭建服务实现 介绍 常见用法: 1) web服务器软件 httpd http ...

  6. nginx+keepalived+tomcat实现主从高可用负载均衡

    设备: 1.准备四台虚拟机,两台tomcat,两台nginx 2.两台tomcat配置相同,测试页不同 两台Tomcat配置完全相同.只有测试页面不同 安装jdk和tomcat [root@local ...

  7. nginx+keepalived实现 负载均衡 高可用

    Vip: 192.168.220.18 Rip1:192.168.220.2 Rip:192.168.220.3 Rip可以配置在一个服务器上通过ip做虚拟主机 1 rs上配置环境 2 配置应用 Yu ...

  8. Keepalived保证Nginx高可用配置

    Keepalived保证Nginx高可用配置部署环境 keepalived-1.2.18 nginx-1.6.2 VM虚拟机redhat6.5-x64:192.168.1.201.192.168.1. ...

  9. linux中keepalived实现nginx高可用配置

    linux中keepalived实现nginx高可用配置 安装keepalived 运行如下命令即可 tar -zxvf keepalived-2.0.8.tar.gz -C /usr/src cd ...

随机推荐

  1. PostgreSQL10.5 - 创建索引的思考

    总体感觉整个索引创建的比较慢,PostgreSQL10没有并行创建索引的功能,所以执行过程中,仅用到了服务器的一个核心来执行计算.索引创建是一个高CPU消耗的工作,CPU基本会跑满,会用到backen ...

  2. Python获取百度浏览记录

    Python模拟百度登录实例详解 http://www.jb51.net/article/78406.htm Python实战计划学习作业2-1 http://blog.csdn.net/python ...

  3. 【テンプレート】字符串hash

    不懂hash是什么的盆友给出直通车:滴滴滴,开车啦~ 如果你看懂了的话: hash模板来也~ #include <cstdio> #include <string> #incl ...

  4. [转]C++ 模板 静态成员 定义(实例化)

    提出问题: 如果有这样一个模板: template <typename T> class Test{ public: static std::string info; }; 对于以下若干种 ...

  5. qml 绘制高精地图之怀疑人生的加载速度

    绘制高精地图时需要gps的经纬度坐标,之前的实现方式是QGeocoordinate类的经纬度变量通过json的方式在qml中使用. 以画线为例,使用方式是这样哒. for(var i in vehic ...

  6. wepy代码知识点

    index-page <style lang="less"> .index-nood-modal { width: 100vw; height: 100vh; posi ...

  7. P1197 [JSOI2008]星球大战——链式前向星+并查集

    https://www.luogu.org/problem/P1197 这道题算是关闭农场的加强版吧,数据有点大,矩阵存不下: 也是记录删点操作,从后往前加边: 先将每个点都算成一个连通块,然后每连一 ...

  8. Tkinter 之RadioButton单选框标签

    一.参数说明 语法 作用 Radiobutton(root,text='xxxx') 单选框文本显示内容 Radiobutton(root,variable=color) 单选框索引变量,通过变量的值 ...

  9. 适当设置,可以让win10显示更加和自己的意思

    一.个性化设置: 1.桌面右击-->个性化-->背景-->图片浏览-->C:\Windows\Web\Screen\img101.png,选择契合度-->适应 2.桌面右 ...

  10. 将页面中所有的checkbox设成单选得

    $(function () { var allBox = $(":checkbox"); allBox.click(function () { allBox.removeAttr( ...