keepalived 实现nginx 负载均衡+主备高可用
概述
nginx作为负载均衡器,所有请求都到nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机,后端web服务将无法提供服务,影响严重。
所以在架构设计中,可以利用nginx的反向代理和负载均衡实现后端应用的负载均衡和高可用性,同时我们还需要考虑Nginx的单点故障。真正做到架构高可用性。
主要考虑以下几点:
1、Nginx服务因为意外现象挂掉
2、服务器宕机导致nginx不可用
目前主流的解决方案就是keepalived+nginx 实现nginx的故障转移,同时做好监控报警。在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题。
keepalived的HA分为抢占模式和非抢占模式,抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP。
使用阿里云epel镜像
两台虚拟机都安装
[root@nginx01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@nginx01 ~]# yum -y install nginx
启动服务和开机自启
[root@nginx01 ~]# systemctl start nginx
[root@nginx01 ~]# systemctl enable nginx
安装keepalived
用刚才实验的俩台虚拟机,暂时不用安装,没有的话按之前安装下
修改keepalived.conf配置文件
nginx-01主机上的keepalived.conf文件的修改
[root@nginx01 ~]# vim /etc/keepalived/keepalived.conf
keepalived.conf配置文件完整内容如下所示:
! Configuration File for keepalived
global_defs {
router_id nginx01
}
vrrp_script chk_nginx{
script "/et