使用keepalived实现nginx高可用机制

一、keepalived的基本概念

在上面的篇章中使用了Nginx代理多个web服务器,之后访问Nginx服务的ip就可以代理访问到真实的web服务器,但是如果你的这台Nginx服务器死掉(宕机),此时所有有该Nginx代理的所有web容器将会无法访问,此时需要配置多个Nginx服务器作为备用机,但是多个Nginx服务器之间需要一个组件来进行协调,我们可以使用Keepalived进行协调,Keepalived可以使用高可用机制,在很多第三方组件都是用到的,最大的特征就是可以使用路由功能的算法虚拟出一个新的Ip地址,之后使用这个Ip地址代理多个真实的服务器。
在这里插入图片描述

二、实现Keepalived的配置

1、下载keepalived安装包

下载地址:https://www.keepalived.org/download.html

2、上传到服务器并解压

scp eepalived-1.2.24.tar.gz root@xxx:/usr/local/src/
tar -xzvf keepalived-1.2.24.tar.gz -C /usr/local/src/

3、进入到keepalived的保存目录中

cd /usr/local/src/keepalived-1.2.24/

4、配置Keepalived的保存路径:

./configure –prefix=/usr/

5、编译及安装

make
make install

如果此时配置成功的话在/usr/etc中出现相关的配置信息,以及会在/usr/sbin中出现启动的命令

6、对Keepalived进行虚拟路由的配置

root@ubuntu:/usr/etc# cd keepalived/
root@ubuntu:/usr/etc/keepalived# vim keepalived.conf
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER          #主要机
    interface eth0
    virtual_router_id 51
    priority 100              #优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {      #虚拟路由的ip
       192.168.239.250
    }
}
virtual_server 192.168.239.250 80 {   #对应上面虚拟路由的ip地址
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.239.133 80 {   #第一台nginx服务器的配置
        weight 1
        SSL_GET {
            url {
              path /                       #根路径下开始访问
              status_code 200         #请求正常的时候开始访问
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
	real_server 192.168.239.135 80 {         #第二台Nginx服务配置
	        weight 1
	        SSL_GET {
	            url {
	              path /                         #根路径下开始访问
	              status_code 200             #请求正常的时候开始访问
	            }
	            connect_timeout 3
	            nb_get_retry 3
	            delay_before_retry 3
	        }
	
	    }

7、启动keepalived服务

root@ubuntu:/etc/keepalived# service keepalived start

8、查看keepalived的状态

service keepalived status

在这里插入图片描述

9、克隆一台新的nginx服务器,并且修改一下两个配置项

root@ubuntu:/usr/etc/keepalived# vim keepalived.conf
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state BACKUP          #备份机
    interface eth0
    virtual_router_id 51
    priority 99             #优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {      #虚拟路由的ip
       192.168.239.250
    }
}
virtual_server 192.168.239.250 80 {   #对应上面虚拟路由的ip地址
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.239.133 80 {   #第一台nginx服务器的配置
        weight 1
        SSL_GET {
            url {
              path /                       #根路径下开始访问
              status_code 200         #请求正常的时候开始访问
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
	real_server 192.168.239.135 80 {         #第二台Nginx服务配置
	        weight 1
	        SSL_GET {
	            url {
	              path /                         #根路径下开始访问
	              status_code 200             #请求正常的时候开始访问
	            }
	            connect_timeout 3
	            nb_get_retry 3
	            delay_before_retry 3
	        }
	
	    }

主要修改以下两个配置
state BACKUP #备份机
priority 99 #优先级

10、浏览器使用虚拟ip访问Nginx服务器

在这里插入图片描述
以上访问的地址就是虚拟路由的ip地址

12、模拟宕机的情况

将Nginx的master机关机,如果可以正常访问,说明配置成功
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值