注:  LVS + Keepalived  不知道为什么出现一个很郁闷的问题.......

-------------------------------------------------------------------------

原来的拓扑是:

LVS 主 + WEB1

LVS 从 + WEB2

IP 是3个外网IP    WEB1 123.123.123.121   WEB2 123.123.123.122

VIP  123.123.123.123

直接访问 WEB1 123.123.123.121  正常

直接访问 WEB2 123.123.123.122  正常

访问VIP 不行    VIP 可以ping通····

关闭 WEB1 服务      VIP 可以了.... 郁闷....是否VIP 80 与 WEB1 80端口冲突?

--------------------------------------------------------------------------

转入正题.......

拓扑

WEB1 + Keepalived 主     IP 123.123.123.121

WEB2 + Keepalived 从     IP 123.123.123.122

VIP 123.123.123.123

两台机都安装 Keepalived

下载 wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz

tar zxvf keepalived-1.2.1.tar.gz
 
cd keepalived-1.2.1
 
./configure
 
make 
 
make install
 
将keepalived做成启动脚务:
 
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/  
 
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/  
 
mkdir /etc/keepalived  
 
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/  
 
cp /usr/local/sbin/keepalived /usr/sbin/  
 
【service keepalived start 可启动,这里暂时不启动,等修改完配置文件以后再启动】
 
 
Keealived的配置文件修改..
 
vi /etc/keepalived/keepalived.conf
 
【主 的Keepalived 的配置文件设置】
--------------------------------------------------------------------------------
vrrp_script chk_http_port { 
                script "/opt/local/nginx/nginx_pid.sh"       监控脚本
                interval 2                             监控时间
                weight 2                                 
vrrp_instance VI_1 { 
        state MASTER                            主 
        interface eth0                      监控网卡    
        virtual_router_id 51             这个两台服务器必须一样 
        priority 101                      权重值 高于 从
        authentication { 
                     auth_type PASS               加密 
                     auth_pass 1111               与从想同 
        } 
        track_script { 
                chk_http_port                      执行监控的服务 
        } 
        virtual_ipaddress { 
             123.123.123.123                          VIP 
        } 

------------------------------------------------------------------------

【从 的Keepalived 的配置文件设置】

--------------------------------------------------------------------------------
vrrp_script chk_http_port { 
                script "/opt/local/nginx/nginx_pid.sh"       监控脚本
                interval 2                             监控时间
                weight 2                                 
vrrp_instance VI_1 { 
        state BACKUP                            从
        interface eth0                      监控网卡    
        virtual_router_id 51             这个两台服务器必须一样 
        priority 100                      权重值 低于 主
        authentication { 
                     auth_type PASS               加密 
                     auth_pass 1111               与从想同 
        } 
        track_script { 
                chk_http_port                      执行监控的服务 
        } 
        virtual_ipaddress { 
             123.123.123.123                          VIP 
        } 

------------------------------------------------------------------------

【编写Nginx 的监控脚本】

----------------------------------------------------------------------

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ];then

/opt/local/nginx/sbin/nginx

sleep 3

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

killall keepalived

fi

fi

------------------------------------------------------------------------

WEB1  WEB2  分别启动...Nginx  与 Keepalived 测试一下...

# ip add list      查看 eth0  是否绑定 vip

关闭 主 Keepalived    查看是否 从 会 接管 VIP

nginx keepalived 主从切换的更多相关文章

  1. nginx + keepalived 主从模式

    转自:https://www.cnblogs.com/kevingrace/p/6138185.html 负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可 ...

  2. nginx+keepalived主从高可用配置

    上面有4台web服务器  我们实验条件限制,就开两台web服务器1.117  1.119 一.环境准备: 系统环境:CentOS 6.5 x86_64 Nginx版本:nginx v1.6.2 Kee ...

  3. Nginx+Keepalived主从配置(双机主从热备)+Tomcat集群

    拓扑环境 以下表格是这次測试须要的拓扑环境,几台server.每台server上安装什么,都有介绍. server名称 系统版本号 预装软件 IP地址/VIP Nginx主server CentOS ...

  4. Nginx+Keepalived主从双机热备+自动切换

    1 安装配置nginx 参考: http://www.cnblogs.com/jager/p/4388202.html 2 安装配置keepalived tar xvf keepalived-1.2. ...

  5. mysql+keepalived主从切换脚本 转

    Keepalived MySQL故障自动切换脚本   MySQL架构为master-slave(主从),master故障自动切换到slave上.当然也可以设置为双master,但这里有个弊端:就是当主 ...

  6. Nginx+keepalived 脚本安装主从双机热备自动切换解决方案

    Nginx+keepalived 脚本安装主从双机热备自动切换解决方案 2013-07-02 19:24:13 标签:filesnginx keepalived 原创作品,允许转载,转载时请务必以超链 ...

  7. nginx+keepalived高可用 (主从+双主)

    1.Nginx+keepalived 主从配置这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于 ...

  8. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  9. nginx+keepalived实现nginx双主高可用的负载均衡

    http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...

随机推荐

  1. jsonarray和jsonobject

    JSONArray ja = new JSONArray(); ja.put("11"); ja.put("22"); ja.put("33" ...

  2. CocoaAsyncSocket框架的简单封装

    在iOS开发中使用socket(CFNetwork),一般都是用第三方库AsyncSocket. 参考博客:http://my.oschina.net/worldligang/blog/396881? ...

  3. Mysql转化blob为可读

    -- info 为列名 SELECT convert(info using latin1) FROM drupal755.system; SELECT convert(info using utf8) ...

  4. c语言库函数

    #include <stdio.h> #define LENGTH 100 main() { FILE *fd; char str[LENGTH]; fd = fopen("he ...

  5. LA 4329 BIT 分治

    #include <cstdio> #include <queue> #include <cstring> #include <iostream> #i ...

  6. Python作用域

    以下依据Python 3 1.Python变量查找顺序为LEGB(L:Local,E:Enclosing,G:Global,B:Built-in). 2.实际上,在Python中,只有模块,类以及函数 ...

  7. jquery从tr获取td

    已知HTML:<tr id="row001"><td>001</td><td>张三</td></tr>JQU ...

  8. [转]于Fragment和Activity之间onCreateOptionsMenu的问题

    Fragment和Activity一样,可以重写onCreateOptionsMenu方法来设定自己的菜单,其实这两个地方使用onCreateOptionsMenu的目的和效果都是完全一样的,但是由于 ...

  9. Git学习 -- 分支管理

    创建新分支,并切换到该分支 git checkout -b dev 这一句相当于以下两句: git branch dev 创建 git checkout dev 切换 查看当前分支 git branc ...

  10. ArrayList类

    /* * Collection是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的,有无序的 * * Collection的功能概述 * 1添加功能 * boolean add(Object ob ...