zoukankan      html  css  js  c++  java
  • 使用Keepalived实现Nginx高可用

    Keepalived是一个路由软件,可以提供linux系统和linux系统上的组件的负载均衡和高可用,高可用基于VRRP(Virtual Router Redundancy Protocol,虚ip)实现

    1.准备两台服务器

    node1 192.168.0.240

    node2 192.168.0.239

     

    2.安装nginx和keepalived

    3.配置nginx主页

    4.配置keepalived

    原理

    1、 通过vrrp协议广播,每个keepalived vrrp都去争取master
    2、 以virtual_router_id为组队标识。  同为一个vip服务的keepalived的virtual_router_id相同
    3、 以priority 为权值,同一个virtual_router_id下那个priority大那个就是master,其它为backup

    node1上的keepalived为master,node2上的为backup

    vim /etc/keepalived/keepalived.conf

    node1配置

    router_id 是路由标识,在一个局域网里面应该是唯一的

    vrrp_instance VI_1{...}这是一个VRRP实例,里面定义了keepalived的主备状态、接口、优先级、认证和IP信息

    state 定义了VRRP的角色

    interface定义使用的接口,这里我的服务器用的网卡都是enp0s3,根据实际来填写

    virtual_router_id是虚拟路由ID标识,一组的keepalived配置中主备都是设置一致

    priority是优先级,数字越大,优先级越大

    auth_type是认证方式,auth_pass是认证的密码

    virtual_ipaddress {...}定义虚拟IP地址,可以配置多个IP地址

    vrrp_strict:严格遵守VRRP协议。下列情况将会阻止启动Keepalived:1. 没有VIP地址。2. 单播邻居。3. 在VRRP版本2中有IPv6地址。这里需要注释掉

    mcast_src_ip 发送多播包的地址,如果不设置,默认使用绑定的网卡的primary IP。

    node2配置

    启动keepalived

    systemctl start keepalived

    日志

    5.测试高可用性

    node1,node2上都启动keepalived,node1为master,node1上自动设置了虚ip

     

    停止node1上的keepalived服务

    继续浏览器访问,发现已切换到node2

    当前node2是master,所以自动设置了虚ip

    再次启动node1 keepalived,发现已切换master到node1

     node2不再有虚ip

  • 相关阅读:
    用户管理
    grep
    Java中的Map
    WinForm------Reflector反编译工具下载
    SQLServer------解决IP地址登录不了数据库问题
    WinForm------弹出MessageBox窗口的同时隐藏当前窗口
    WinForm------DockManager控件的使用方法(里面包含DockPanel控件)
    IIS------Http错误:50019,由于权限不足无法读取配置文件
    IIS------配置错误:不能在此路径中使用此配置节
    IIS------配置.Net 4.0
  • 原文地址:https://www.cnblogs.com/zhya/p/9855771.html
Copyright © 2011-2022 走看看