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

来源:互联网 发布:云计算节点 编辑:程序博客网 时间:2024/06/05 10:38

1) Keepalived 双主配置环境

    主要目的是让两台机器互为主从概念,即在keepalived.conf文件中交叉配置实现互为主从功能。

与上一篇配置环境描述一样,只是在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 {            1349594420@qq.com      }      notification_email_from 1349594420@qq.com        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 root@192.168.73.136:/etc/keepalived

#全局定义块    global_defs {        # 邮件通知配置        notification_email {            1349594420@qq.com      }      notification_email_from 1349594420@qq.com        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 状态日志  

     如以下提供来源其它的测试两个图片




原创粉丝点击