keepalived结合nginx实现nginx高可用的方法

2019-10-17 17:56:24于丽

4.配置keepalived节点信息,默认配置文件为/etc/keepalived/keepalived.conf。keepalived.conf配置文件如下: 

! Configuration File for keepalived

global_defs {
 router_id nginx_master154
}

vrrp_script chk_nginx {
 script "/usr/local/nginx/nginx_check.sh"
 interval 2
 weight 20
}
vrrp_instance VI_1 {
 state MASTER
 interface eth0
 virtual_router_id 154
 mcast_src_ip 10.63.0.154
 priority 100
 nopreempt
 advert_int 1
 authentication {
  auth_type PASS
  auth_pass 1111
 }
 track_script {
  chk_nginx
 }
 virtual_ipaddress {
  10.63.0.158
 }
}
}

配置文件关键参数说明:

     router_id   //定义节点名称 vrrp_script chk_nginx {    script "/etc/keepalived/nginx_check.sh"     interval 2     weight -20  }    //每隔2秒中去执行/etc/keepalived/nginx_check.sh脚本一次,这项检查从开始便一直进行,interval表示间隔时间,weight -20的意思是,脚本执行当判断异常时,把10.63.0.154这个节点的优先级降低20。 state MASTER   //表示该节点角色定义为MASTER virtual_router_id 154  //定义虚拟的节点标识 interface eth0   //定义网卡名称 查看服务器网卡名称可通过指令:ifconfig或者ip  a,如图:

以上配置文件完成后,启动nginx,启动keepalived,可测试nginx是否可被虚拟ip地址访问。启动keepalived指令:systemctl start keepalived.service,启动后可通过指令 systemctl status keepalived.service查看状态。利用虚拟ip访问nginx主界面截图如下:

    

3.安装keepalived备用节点

 在服务器2上面安装keepalived的方法和服务器1完全一样,在keepalived.conf配置文件中只需修改三个地方:

    interface eth0   //定义网卡名称 查看服务器2的网卡 如网卡名称为 eno24 ,则定义为:interface eno24 priority  //优先值设置为98 mcast_src_ip 10.63.0.155

两台服务器上面的keepalived安装成功后,通过虚拟ip10.63.0.158调用测试,发现始终是主节点的页面,不会调用备用节点的页面。设置把服务器1上面的keepalived关闭后,再次调用,会出现备用节点的主界面,如下图: