lvs+keepalived搭建双机主从架构
安装nginx: yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel
保证nginx 可以正常访问:
我这里129 跟 146 如下:
安装keepalived: 1.安装基础必备包. yum install popt-devel 2. 编译. tar -zxvf keepalived-1.2.15.tar.gz -C /usr/local/ cd keepalived-1.2.15/ && ./configure --prefix=/usr/local/keepalived make && make install 3.配置相关文件 mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ ln -s /usr/local/sbin/keepalived /usr/sbin/ ln -s /usr/local/keepalived/sbin/keepalived /sbin/ 4. vim /etc/keepalived/keepalived.conf master: vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务 interval 2 #检测时间间隔 weight -20 #如果条件成立的话,则权重 -20 } # 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称 vrrp_instance VI_1 { state MASTER #来决定主从 interface eth0 # 绑定虚拟 IP 的网络接口,根据自己的机器填写 virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样 mcast_src_ip 192.168.139.129 #填写本机ip priority 100 # 节点优先级,主要比从节点优先级高 nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题 advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s authentication { auth_type PASS auth_pass 1111 } # 将 track_script 块加入 instance 配置块 track_script { chk_nginx #执行 Nginx 监控的服务 } virtual_ipaddress { 192.168.139.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个 前三位必须跟服务器保持一致。 } } service keepalived start 启动无报错则安装keepalived成功:
backup: vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务 interval 2 #检测时间间隔 weight -20 #如果条件成立的话,则权重 -20 } # 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称 vrrp_instance VI_1 { state BACKUP #来决定主从 interface eth2 # 绑定虚拟 IP 的网络接口,根据自己的机器填写 virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样 mcast_src_ip 192.168.139.129 #填写本机ip priority 100 # 节点优先级,主要比从节点优先级高 nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题 advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s authentication { auth_type PASS auth_pass 1111 } # 将 track_script 块加入 instance 配置块 track_script { chk_nginx #执行 Nginx 监控的服务 } virtual_ipaddress { 192.168.139.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个 前三位必须跟服务器保持一致。 } }
keepalived 常用命令 service keepalived start service keepalived stop 1.实现效果 通过配置的虚拟vip ip访问能访问到主节点nginx
主节点有vip ip 110 从节点无
3:重启主节点 主节点可以看到vip ip 需要等待几秒钟
至此 双击主从热备架构搭建完成(一主一从nginx)
通过keeplived 生成的vip ip 访问nginx 再由nginx 访问 真正Tomcat集群
正常情况下不会方位从(BACKUP)只有当主节点(MASTER挂了之后才能访问)