0
点赞
收藏
分享

微信扫一扫

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)


Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_服务器

 

目录

Nginx场景实践_Nginx高可用

Nginx场景实践_LVS负载均衡 

Nginx场景实践_keepalived健康监测

Nginx场景实践_企业双机热备方案

 使用keepalived虚拟IP

 Nginx+keepalived实现高可用

Nginx场景实践_Nginx高可用

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_Nginx_02

 什么是高可用?

高可用HA(High Availability)是分布式系统架构设计中必须考虑 的因素之一,它通常是指,通过设计减少系统不能提供服务的时 间。如果一个系统能够一直提供服务,那么这个可用性则是百分之 百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_nginx_03

 

解决的问题

在生产环境上很多时候是以 Nginx 做反向代理对外提供服务,但 是一天Nginx难免遇见故障,如:服务器宕机。当 Nginx 宕机那么 所有对外提供的接口都将导致无法访问。虽然我们无法保证服 务器百分之百可用,但是也得想办法避免这种悲剧,今天我们 使用 keepalived 来实现 Nginx 的高可用。 

双机热备方案 

这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实 就是指一台服务器在提供服务,另一台为某服务的备用状态,当一 台服务器不可用另外一台就会顶替上去。

实时效果反馈

1. Nginx 双机热备方案主要解决什么问题。

A 安全问题 

B nginx单点故障问题

C 性能问题

D 并发问题

Nginx场景实践_LVS负载均衡 

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_运维_04

LVS是一个开源的软件,可以实现传输层四层负载均衡。LVS是 Linux Virtual Server的缩写,意思是Linux虚拟服务器。 

目标:

通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。 

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_服务器_05

 

LVS的八种调度算法

1 、轮叫调度 rr

2 、加权轮叫 wrr

3 、最少链接 lc

4 、加权最少链接 wlc

5 、基于局部性的最少连接调度算法 lblc

6 、复杂的基于局部性最少的连接算法 lblcr

7 、目标地址散列调度算法 dh

8 、源地址散列调度算法 sh 

实时效果反馈

1. LVS是一个开源的软件,可以实现____四层负载均衡。

A 应用层

B 链路层

C 传输层

D 会话层

2. 下列不属于LVS负载均衡算法的是____。

A 轮叫调度 rr 

B 加权轮叫 wrr

C 最少链接 lc

D ip_hash

Nginx场景实践_keepalived健康监测

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_Nginx_06

LVS可以实现负载均衡,但是不能够进行健康检查,比如一个rs出现故障,LVS 仍然会把请求转发给故障的rs服务器,这样就会导致请求的无效性。keepalive 软件可以进行健康检查,而且能同时实现 LVS 的高可用性,解决 LVS 单点故障的问题,其实 keepalive 就是 为 LVS 而生的。 

keepalived工作原理 

keepalived是基于VRRP协议实现的保证集群高可用的一个服务软件,主要功能是实现真机的故障隔离和负载均衡器间的失败切换, 防止单点故障。

VRRP协议 

VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时, 由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。

 主要作用: VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个或者多个)对外提供服务。

实时效果反馈

1. keepalived主要解决LVS____问题。

A 不高效

B 不安全问题

C 不稳定问题

D 不能够进行健康检查 

Nginx场景实践_企业双机热备方案

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_服务器_07

环境服务配置 

两台Nginx服务器
Nginx 主服务器 192.168.66.100
Nginx 备服务器 192.168.66.101
Lvs 虚拟VIP     192.168.66.99

环境搭建

yum install -y keepalived

keepalived 常用命令

service keepalived start
service keepalived stop

启动报错:

Starting keepalived (via systemctl): Job for

keepalived.service failed. See 'systemctl status

keepalived.service' and 'journalctl -xn' for details.

解决办法

[root@edu-proxy-01 sbin]# cd /usr/sbin/

[root@edu-proxy-01 sbin]# rm -f keepalived

[root@edu-proxy-01 sbin]# cp

/usr/local/keepalived/sbin/keepalived /usr/sbin/

 使用keepalived虚拟IP

修改主keepalived信息

修改主Nginx服务器keepalived文件, /etc/keepalived/keepalived.conf

 State 为MASTER

! Configuration File for keepalived
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 ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
   virtual_router_id 121 # 虚拟路由的 ID 号,两个节点设置必须一样
   mcast_src_ip 192.168.212.141 #填写本机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.212.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
   }
}

修改从keepalived信息

修改主Nginx服务器keepalived文件,

/etc/keepalived/keepalived.conf

State 为BACKUP

! Configuration File for keepalived
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 ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
   virtual_router_id 121 # 虚拟路由的 ID 号,两个节点设置必须一样
   mcast_src_ip 192.168.212.141 #填写本机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.212.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
   }
}

 Nginx+keepalived实现高可用

写入nginx_check.sh脚本 /etc/keepalived/nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
   /usr/local/nginx/sbin/nginx
   sleep 2
   if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
       killall keepalived
   fi
fi

Nginx【Nginx场景实践(Nginx高可用、LVS负载均衡 、keepalived健康监测、企业双机热备方案)】(十二)-全面详解(学习总结---从入门到深化)_nginx_08

 实时效果反馈

1. Nginx高可用技术通过使用___实现。

A keepalived

B LVS

C F5

D Keepalived+LVS

举报

相关推荐

0 条评论