zoukankan      html  css  js  c++  java
  • 虚拟IP+heartbeat(一)

    记录一下,这是个小规模的高可用方案。适合单机房、几个实例,机器不多的情况。

    虚拟IP(virtual IP,简称VIP)

    流量通过虚拟IP访问,而不是物理IP。 

    举个例子, 内网服务中, DNS到物理IP。如果物理IP变动,这是非常麻烦的事儿,需要用户刷新本地dns缓存。 可是 DNS服务到的是虚拟IP,那影响面就少很多了。

    下面是虚拟IP配置示例:

    首先我创建了2个虚拟机克隆。 分别是   

    192.168.146.80、
    192.168.146.81
    虚拟机1
    
    ens33 Link encap:Ethernet HWaddr 00:50:56:28:60:52 
    inet addr:192.168.146.80 Bcast:192.168.146.255 Mask:255.255.255.0
    inet6 addr: fe80::250:56ff:fe28:6052/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1483 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1202 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000 
    RX bytes:145275 (145.2 KB) TX bytes:114981 (114.9 KB)
    
    
    虚拟机2
    
    ens33 Link encap:Ethernet HWaddr 00:50:56:28:60:52 
    inet addr:192.168.146.81 Bcast:192.168.146.255 Mask:255.255.255.0
    inet6 addr: fe80::250:56ff:fe28:6052/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1483 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1202 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000 
    RX bytes:145275 (145.2 KB) TX bytes:114981 (114.9 KB)

    192.168.146.85 作为虚拟IP吧~ 

    用别名的方式使用虚拟IP

    ifconfig ens33:0 192.168.146.85 netmask 255.255.255.0 up

    ifconfig 就发现多了一个网卡和IP了

    ens33:0   Link encap:Ethernet  HWaddr 00:50:56:28:60:52  
              inet addr:192.168.146.85  Bcast:192.168.146.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

    删除虚拟Ip

    ifconfig ens33:0 down

    上面的方式 机器重启、restart networking就失效的了。 最好就写在配置中。

    写在配置中

    追加 /etc/network/interfaces

    auto ens33:0
    iface ens33:0 inet static
    name Ethernet alias LAN card
    address 192.168.146.85
    netmask 255.255.255.0
    broadcast 192.168.146.255
    network 192.168.146.1

    测试

    分别在2台机器上安装了 nginx。

    修改nginx文件的html内容。 机器1的显示 nginx1、 机器2显示nginx2。

    访问 192.168.146.85。

    关闭机器1,显示机器2。 则验证通过。

  • 相关阅读:
    day22 面向对象
    springMVC中 POST 请求数据变乱码问题
    Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract
    java.sql.SQLException: Unknown system variable 'tx_isolation'
    Mysql命令
    paas相关,添加ing
    Angular2中实现基于TypeScript的对象合并方法:extend()
    NgStyle和NgIf控制HTML标签显示的区别
    执行ng build --prod --aot命令报错
    JavaScript中的小陷阱(不定期更新。。)
  • 原文地址:https://www.cnblogs.com/ELMND/p/11389876.html
Copyright © 2011-2022 走看看