• 基于keepalived+nginx+upstream的双master热切换+负载均衡实现方案


    keepalived它是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

    nginx的安装在我之前的博客中已经写过,这里就不再赘述。

    然后就是安装keepalived​

    命令:wget​ http://www.keepalived.org/software/keepalived-1.1.20.tar.gz

    根据需要选择适合自己版本的keepalived下载。

    解压:tar -zxvf /root/keepalived-1.2.19.tar.gz(根据自己的下载路径填写)

    ​进入解压后的文件中cd  /root/keepalived-1.2.19。如图有一个configure的可执行文件​

    在/usr/local文件下新建keepalived文件夹

    mkdir /usr/local/keepalived​

    ​接着运行./configure  --prefix=/usr/local/keepalived

     

    这里用nginx来负载均衡不用lvs来负载所以不用管这一行。

    make&&make install​ 来安装完后/usr/local/keepalived下生成四个文件夹代表安装成功。

    这是/usr/local/keepalived文件夹的目录结构

    安装完以后执行以下命令以方便以后管理

    mkdir /etc/​keepalived

    • ​ln -s /usr/local/sbin/keepalived /usr/sbin/ 或者
    • ​cp /usr/local/keepalived/sbin/keepalived  /usr/sbin

    cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig

    cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

    cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/

    启动keepalived:service keepalived start

    keepalived 双主配置

    ​主:真实ip192.168.110.134   vip192.168.110.80

    备:​真实ip192.168.110.135   vip192.168.110.90

    主:

    vrrp_instance VI_1 {

        state MASTER      // 定义为主服务器

        interface eth0       //vip绑定的网卡

        virtual_router_id 51   //虚拟路由的id,主从必须一致

        priority 100      //优先级,随机值但是主服务器的一定比从服务器的大

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.110.80         //绑定的虚拟ip

        }

    }

    vrrp_instance VI_2 {

        state BACKUP         //定义为从服务器

        interface eth0        //vip绑定的网卡

        virtual_router_id 52  //虚拟路由的id,主从必须一致

        priority 90       //优先级,随机值但是主服务器的一定比从服务器的大

        advert_int 1

        authentication {

    auth_type PASS

    auth_pass 1111

        }

        virtual_ipaddress{

    192.168.110.90      //绑定vip

        }

    }

    ​配置玩重启keepalived:service keepalived restart

    ​ip  addr 查看

     

    备:​

    ​vrrp_instance VI_1 {

        state BACKUP

        interface eth0

        virtual_router_id 51

        priority 90

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.110.80

        }

    }

    vrrp_instance VI_2 {

        state MASTER

        interface eth0

        virtual_router_id 52

        priority 100

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress{

            192.168.110.90

        }

    }

    测试:​主服务器正常工作时,为了方便区别验证

     

    主服务器关机或者服务进程死掉立马切换备服务器,切换时间人感觉不出来。

    负载均衡:

    ​nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 

    ​每个主服务器如下配置

    vi /etc/nginx/nginx.conf

    ​upstream test {

            server 127.0.0.1 down; //本地服务器不参与负载

            server 192.168.110.136:80 weight=5; //后台服务器

            server 192.168.110.137:80 weight=5;//后台服务器

            #ip_hash;

    }

    ​location / {

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_pass http://test;

            root   /usr/share/nginx/html;

            index  index.html index.htm;

        }

    成功!

    这是我自己安装后写的教程因为刚接触架构,其中很多都一知半解讲解的不够详细!​​

  • 相关阅读:
    八数码问题 Eight Digital Problem
    What is probabilistic programming? | 中文翻译
    Installing Moses on Ubuntu 16.04
    Python3 解析XML 层序遍历二叉树
    ORACLE之PACKAGE-包、存储过程、函数
    Java解析XMl文件之SAX和DOm方法
    关于Could not parse configuration: /hibernate.cfg.xml的问题
    hibernate入门
    linux常用命令
    基本STRUTS标签-学习笔记-Bean标签
  • 原文地址:https://www.cnblogs.com/niushihuai/p/5600216.html
Copyright © 2020-2023  润新知