Nginx + keepalived 实现高可用HA 【双主架构】

1) Keepalived 双主配置环境

    主要目的是让两台机器互为主从概念,即在keepalived.conf文件中交叉配置实现互为主从功能。
Nginx + keepalived 实现高可用HA 【双主架构】_第1张图片
与上一篇配置环境描述一样,只是在135与136机器上的Keepalived配置文件中配置两个VIP内容,让他们两个Keepalived都有一个MASTER与BACKUP节点,只是两台机器交叉配置, 最终通过DNS的IP指向(A记录) 指向两个VIP地址,实现双主Keepalived功能。

        135与136的机器上安装了Nginx与Keepalived

        137与138的机器上安装了JDK1.8与Tomcat环境



2) 在Master1与Master2机器上的 /etc/keepalived/keepalived.conf 文件交叉修改

    2.1) Master1 机器文件配置内容

            注意查看 "【】"中的注解说明。
#全局定义块    
global_defs {    
    # 邮件通知配置    
    notification_email {    
        [email protected]  
    }  
    notification_email_from [email protected]    
    smtp_server 127.0.0.1    
    smtp_connect_timeout 30   
    router_id LVS_DEVEL    ## 标识本节点的字条串,通常为hostname    
}  
  
  
vrrp_script chk_nginx {  
    script "/data/sh/check_nginx.sh"  ## 检查Nginx是否存活的一个角本  
    interval 2                        ## 重试两次  
    weight 2                          ## 权重  
}  
  
#VIP 1  
vrrp_instance VI_1 {  
    state MASTER                     ## 【改成MASTER】状态,表示开机启动的状态  
    interface eth0                   ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)  
    lvs_sync_daemon_interface eth0   ## 互联通讯的网卡  
    virtual_router_id 151            ## 路由ID, 局域网内的路由ID,必须唯一性  
    priority 100                     ## 优先级(Master1机器如设置为100, Master2机器得设置为90)  
    advert_int 5    
        nopreempt                        ## 不抢占  
        authentication {                 ## 认证  
        auth_type PASS  
        auth_pass 1111  
    }     
    virtual_ipaddress {  
        192.168.73.100           ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)  
    }  
    track_script {  
        chk_nginx  
    }  
}  

#VIP 2  【追加此VIP2】
vrrp_instance VI_2 {  
    state BACKUP                     ## 状态,表示开机启动的状态  
    interface eth0                   ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)  
    lvs_sync_daemon_interface eth0   ## 互联通讯的网卡  
    virtual_router_id 152            ## 【路由必须与MASTER不一样】路由ID, 局域网内的路由ID,必须唯一性  
    priority 90                      ## 【优先级必须比MASTER要小】优先级(Master1机器如设置为100, Master2机器得设置为90)  
    advert_int 5    
        nopreempt                        ## 不抢占  
        authentication {                 ## 认证  
        auth_type PASS  
        auth_pass 2222                   ## 【密码必须与MASTER不一样】 
    }     
    virtual_ipaddress {  
        192.168.73.110           ## 【第二个虚拟IP】前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)  
    }  
    track_script {  
        chk_nginx                ## 【chk_nginx不用改】 
    }  
} 

    2.2) Master2 机器文件配置内容

            注意,Master2的机器与Master1的机器 keepalived文件区别,只在于VIP1与VIP2的state与priority的两个属性交叉对换一下即可,其它属性都不需要去调整。
#scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived

#全局定义块    
global_defs {    
    # 邮件通知配置    
    notification_email {    
        [email protected]  
    }  
    notification_email_from [email protected]    
    smtp_server 127.0.0.1    
    smtp_connect_timeout 30   
    router_id LVS_DEVEL    ## 标识本节点的字条串,通常为hostname    
}  
  
  
vrrp_script chk_nginx {  
    script "/data/sh/check_nginx.sh"  ## 检查Nginx是否存活的一个角本  
    interval 2                        ## 重试两次  
    weight 2                          ## 权重  
}  
  
#VIP 1  
vrrp_instance VI_1 {  
    state BACKUP                     ## 【与VIP2节点对调】状态,表示开机启动的状态  
    interface eth0                   ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)  
    lvs_sync_daemon_interface eth0   ## 互联通讯的网卡  
    virtual_router_id 151            ## 路由ID, 局域网内的路由ID,必须唯一性  
    priority 90                      ## 【与VIP2节点对调】优先级(Master1机器如设置为100, Master2机器得设置为90)  
    advert_int 5    
        nopreempt                        ## 不抢占  
        authentication {                 ## 认证  
        auth_type PASS  
        auth_pass 1111  
    }     
    virtual_ipaddress {  
        192.168.73.100           ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)  
    }  
    track_script {  
        chk_nginx  
    }  
}  

#VIP 2  
vrrp_instance VI_2 {  
    state MASTER                     ## 【与VIP1节点对调】状态,表示开机启动的状态  
    interface eth0                   ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)  
    lvs_sync_daemon_interface eth0   ## 互联通讯的网卡  
    virtual_router_id 152            ## 路由ID, 局域网内的路由ID,必须唯一性  
    priority 100                     ## 【与VIP1节点对调】优先级(Master1机器如设置为100, Master2机器得设置为90)  
    advert_int 5    
        nopreempt                        ## 不抢占  
        authentication {                 ## 认证  
        auth_type PASS  
        auth_pass 2222                   
    }     
    virtual_ipaddress {  
        192.168.73.110           ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)  
    }  
    track_script {  
        chk_nginx                
    }  
} 

   2.3) 过程的测试常用命命令

#/etc/init.d/keepalived restart   -- 启动 keepalived  
#tail -fn 100 /var/log/messages   -- 查看 keepalived 状态日志  

     如以下提供来源其它的测试两个图片
Nginx + keepalived 实现高可用HA 【双主架构】_第2张图片



你可能感兴趣的:(Nginx)