02 Nginx和Keepalived高可用

本文详细介绍了Nginx与Keepalived如何实现高可用。通过Keepalived,当Nginx主服务器故障时,可以自动切换到备份服务器,确保服务不间断。Keepalived基于VRRP协议,通过心跳检测监控服务器状态,实现主备切换。文中还涵盖了VRRP协议的工作原理、选举机制以及Keepalived的安装配置步骤。
摘要由CSDN通过智能技术生成


大型网站高并发处理传送门:


02 Nginx和Keepalived高可用

1. 为什么要学习keepalived?

image-20211216215054816

  Nginx如果存在单点故障,即使后面两个节点都是可用的,也不能提供服务,那就提供多个Nginx负载均衡服务器。但是客户端找哪个Nginx呢?这个时候,就用到Keepalived。有了Keepalived,可以让Nginx1成为 Keepalived Master。让Nginx2成为 Keepalived backup。Nginx1对外虚拟一个IP,比如:200。当客户端访问时,可以访问200这个虚拟ip。只有当Nginx1出现故障时,Keepalived可以判断出来,此时,虚拟ip指向Nginx2,Nginx2才会提供服务。Keepalived可以实现主备切换!!!

2. Keepalived概述

  keepalived 是集群管理中保证集群高可用的服务软件。Keepalived 的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived 自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

高可用

  1. 需要心跳机制探测后端 RS 是否提供服务

    • 探测 down,需要从 lvs 中删除该 RS
    • 探测发送从 down 到 up,需要从 lvs 中再次添加 RS
  2. Lvs DR,需要主备(HA)

Keepalived原理

VRRP 协议(虚拟路由冗余协议) - Virtual Router Redundancy Protocol

image-20211216221731267

keepalived 工作在 IP/TCP 协议栈的 IP 层(3),TCP 层(4),及应用层(5),工作原理基于 VRRP 协议。

  • 网络层(layer 3):Keepalived 会定期向服务器群中的服务器发送一个 ICMP 的数据包, (既我们平时用的 ping 程序),如果发现某台服务的 IP 地址没有激活,Keepalived 便报告 这台服务器失效,并将它从服务器群中剔除。
  • 传输层(layer 4):Keepalived 以 TCP 端口的状态来决定服务器工作正常与否,如 web server 的服务端口一般是 80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中剔除。
  • 应用层(layer 5):只要针对应用上的一些探测方式,如 URL 的 get 请求,或者对 nginx脚本检测等;可以根据用户自定义添加脚本针对特定的服务进行状态检测,当检测结果与用 户设定不一致,则把这台服务器从服务器群中剔除

3. VRRP协议与工作原理

image-20211216222059933

  VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议是一种容错的主备模式的协议,当网络设备发生故障时,可以不影响主机之间通信情况下进行设备主备切换,并且相对用户时切换过程时透明的。

  一个 VRRP 路由器有唯一的标识:VRID,范围为 0—255。该路由器对外表现为唯一的虚拟 MAC 地址,地址的格式为 00-00-5E-00-01-[VRID]。

  同一台路由器可以加入多个备份组,在不同备份组中有不同的优先级,使得该路由器可以在一个备份组中作为主用路由器,在其他的备份组中作为备用路由器

提供了两种安全认证措施:明文认证和 IP 头认证。

4. VRRP选举机制

  • 虚拟 IP 拥有者:如果某台路由器的 IP 地址与虚拟路由器的 VIP 地址一致,那么这台就会被选为主路由器

  • 优先级较高者,如果没有虚拟 IP 拥有者,优先级数值大的路由器会被选举出成为master,优先级范围 0~255。

  • 如果优先级一样高,IP 地址数值大的路由器会被选举出。

    • 192.168.58.11 192.168.58.24 MASTER

5. 安装前准备

  nginx1 和 nginx2 作为负载均衡服务器,node2 和 node3 还是 RS 服务器,并修改 node2 和 node3 上的 index.jps,去掉样式和图片,去掉动静分离的干扰。即这里的nginx不再作为静态服务器,而是作为负载均衡服务器。

node2:

[root@node2 ~]# vim /opt/tomcat-7.0.69/webapps/ROOT/index.jsp 

from 192.168.236.102 <br/>
session=<%=session.getId()%></font>

node3:

[root@node3 ~]# vim /opt/tomcat-7.0.69/webapps/ROOT/index.jsp 

from 192.168.236.103 <br/>
session=<%=session.getId()%></font>

6.安装步骤

  1. 修改 nginx1 和 nginx2 的/etc/hosts 配置文件,添加:

    196.168.236.105 nginx1
    196.168.236.106 nginx2
    
    [root@nginx1 ~]# vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.236.100 node0
    192.168.236.101 node1
    192.168.236.102 node2
    192.168.236.103 node3
    192.168.236.104 node4
    192.168.236.105 nginx1
    192.168.236.106 nginx2
    
    [root@nginx2 ~]# vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值