zoukankan      html  css  js  c++  java
  • Nginx+keepalived的高可用集群(三、Keepalived高可用部署)

    1.下载

    Keepalived官方下载地址: http://www.keepalived.org/download.html

    本次下载的是keepalived-1.4.4.tar.gz

    上传到服务器后解压到当前目录:

    tar -zxvf keepalived-1.4.4.tar.gz
    

    2.安装

    进入keepalived-1.4.4目录编译并安装

    #进入keepalived-1.4.4目录
    cd  keepalived-1.4.4
    #检查依赖库是否正确
    ./configure --prefix=/etc/keepalived
    #编译并安装
    make && make install 

     

    复制文件创建软连接

    因为没有用默认安装,需自行移动文件

    mkdir /etc/keepalived
    cp /usr/local/keepalived/etc/keepalived/keepalived.conf   /etc/keepalived/
    cp /usr/local/keepalived-1.4.4/keepalived/etc/init.d/keepalived    /etc/rc.d/init.d/keepalived
    cp /usr/local/keepalived/etc/sysconfig/keepalived   /etc/sysconfig/keepalived
    ln -s /home/bship/keepalived /usr/sbin/
    

       在/etc/keepalived目录创建Nginx启动脚本nginx_check.sh(该脚本用于检测nginx的进程

    #!/bin/bash
    A=`ps -C nginx --no-header | wc -l`
    if [ $A -eq 0 ];then
    	/usr/local/nginx/sbin/nginx -s stop
    	#尝试重新启动nginx
        /usr/bin/nginx 
    	#睡眠2秒
        sleep 2  
        if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
    	    #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
            killall keepalived 
        fi
    fi
    

     并给nginx_check.sh添加执行权限

    chmod +x /etc/keepalived/nginx_check.sh
    

    3.配置文件

    这里演示配置90服务器上的Keepalived,90服务器为master主机,91,92为备机。

    #进入Keepalived配置目录,进行Keepalived.conf的配置
    cd  /etc/keepalived

    master的keepalived.conf配置如下

    ! Configuration File for keepalived
    #全局配置 删掉了邮箱部分暂时用不到
    global_defs {
       # 负载均衡唯一标识,其实就是一个标识
       router_id Nginx_90
    }
    
    #vrrp_script 定时执行脚本
    vrrp_script chk_nginx {
        # 执行脚本路径
        script "/etc/keepalived/nginx_check.sh"
    	# 执行间隔之间默认1S
        interval 2
    	# 优先级(-254~254)默认2
        weight -20
    }
    
    #vrrp_instance 节点信息
    vrrp_instance VI_1 {
       #指定节点的处所状态MASTER | BACKUP
        state MASTER
        # 网卡信息 ip address查看网卡信息
        interface ens192
        # 让master和backup在同一个虚拟路由里,id必须相同
        virtual_router_id 190
        # 优先级 谁高谁将成为master
        priority 100
        # 设置为不抢占。默认是抢占的,当高优先级的机器恢复后,会抢占低优先级的机器成为MASTER,而不抢占,则允许低优先级的机器继续成为MASTER,
    #即使高优先级的机器已经上线。如果要使用这个功能,则初始化状态必须为BACKUP。 # nopreempt # 指定发送vrrp通告的时间间隔1S advert_int 1 authentication { # 认证方式 PASS(简单密码认证,推荐) | AH(IPSEC认证,不推荐) auth_type PASS # 密码最多8位 auth_pass 1111 } # 指定VIP地址,可虚拟多个VIP地址 virtual_ipaddress { 196.168.0.190 } track_script { chk_nginx } } virtual_server 196.168.0.190 443 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP }

    主机和备机的配置不一致(router_id和state需要修改

     开通端口

    iptables -I INPUT -p 112 -j ACCEPT
    

    4.启动服务

    分别启动master90和backup91,92

    1.启动方式一

    #设置开机自动启动
    systemctl enable keepalived.service 
    #取消开机自动启动    
    systemctl disable keepalived.service    
    #启动服务
    systemctl start keepalived.service    
    #重启服务   
    systemctl restart keepalived.service  
    #停止服务  
    systemctl stop keepalived.service
    #查看服务状态       
    systemctl status keepalived.service        

       启动方式二

    #启动 
    service keepalived start
    #停止
    service keepalived stop
    #重启
    service keepalived restart
    

    查看keepalived启动是否正常显示如下界面表示正常

     

     我们通过keepalived虚拟了一个VIP的地址是196.168.0.190,我们访问这个VIP地址,成功访问到了nginx

     

     尝试把90服务上的nginx挂掉,成功实现了切换到92服务器上,这样就实现了nginx的高可用。

      

     

     通过测试master漂移到了92服务器上

     

     

      

  • 相关阅读:
    极速安装JumpServer
    高并发限流策略
    JDK1.8源码分析:Future和FutureTask-任务异步执行结果
    nginx 转发 header 数据丢失
    zookpeer 和 redis 集群内一致性协议 及 选举 对比
    Spring Boot 中 Druid 的监控页面配置
    eclipse使用正则表达式查找替换
    jvm 线程状态
    Redis做分布式锁
    Dubbo的异常处理
  • 原文地址:https://www.cnblogs.com/mabaoying/p/12668525.html
Copyright © 2011-2022 走看看