笔记

1、晨考

1、HTTPS的作用,怎么实现的呢?

2、全栈部署HTTPS
只需在代理中部署HTTPS 3、反向代理 BBS 步骤
1、部署WEB机器
2、部署代理 4、如果 LB01 宕机了,怎么办?
高可用

2、昨日问题


3、今日内容

1、高可用
2、七层负载均衡 和 四层负载均衡

4、什么是高可用

一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。

比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办?

通常做法是给路由器增加一台备节点,但是问题是,如果我们的主网关master故障了,用户是需要手动指向backup的,如果用户过多修改起来会非常麻烦。

问题一:假设用户将指向都修改为backup路由器,那么master路由器修好了怎么办?
问题二:假设Master网关故障,我们将backup网关配置为master网关的ip是否可以? 其实是不行的,因为PC第一次通过ARP广播寻找到Master网关的MAC地址与IP地址后,会将信息写到ARP的缓存表中,那么PC之后连接都是通过那个缓存表的信息去连接,然后进行数据包的转发,即使我们修改了IP但是Mac地址是唯一的,pc的数据包依然会发送给master。(除非是PC的ARP缓存表过期,再次发起ARP广播的时候才能获取新的backup对应的Mac地址与IP地址) 如何才能做到出现故障自动转移,此时VRRP就出现了,我们的VRRP其实是通过软件或者硬件的形式在Master和Backup外面增加一个虚拟的MAC地址(VMAC)与虚拟IP地址(VIP),那么在这种情况下,PC请求VIP的时候,无论是Master处理还是Backup处理,PC仅会在ARP缓存表中记录VMAC与VIP的信息。

5、常用的工具

1.硬件通常使用 F5
2.软件通常使用 keepalived

6、VRRP协议

VRRP协议会在一个局域网中进行广播,

7、部署keepalived

[root@lb01 conf.d]# yum install keepalived -y

8、Keepalived配置

! Configuration File for keepalived

# 全局配置
global_defs {
# 当前keepalived的唯一标识
router_id lb01
} # 检测脚本
vrrp_script check_nginx {
# 指定脚本路径
script "/etc/keepalived/checkNG.sh"
# 执行间隔
interval 5
} # 配置VRRP协议
vrrp_instance VI_1 {
# 状态,MASTER和BACKUP
state MASTER
# 绑定网卡
interface eth0
# 虚拟路由标示,可以理解为分组
virtual_router_id 50
# 优先级
priority 100
# 监测心跳间隔时间
advert_int 1
# 配置认证
authentication {
# 认证类型
auth_type PASS
# 认证的密码
auth_pass 1111
}
# 设置VIP
virtual_ipaddress {
# 虚拟的VIP地址
192.168.15.3
}
# 调用检查
track_script {
check_nginx
}
} # 启动
[root@lb01 ~]# systemctl enable --now keepalived

9、怎么解决keepalived的脑裂问题

两台高可用服务器在指定时间内,无法互相检查到对方的心跳而各自启动故障转移功能。

1、如果Nginx宕机怎么办?
想办法告诉keepalived,Nginx的情况。 2、局域网之内,keepalived无法相互广播,怎么办?
判断VIP是否可以ping的通 $? : 上一条命令执行的结果。
[root@lb01 ~]# cat checkNG.sh
#!/bin/bash # 解决Nginx无法正常启动
ps -ef | grep -q [n]ginx if [ $? -ne 0 ];then
# 代表Nginx未正常启动
systemctl start nginx &>/dev/null
sleep 2
ps -ef | grep -q [n]ginx
if [ $? -ne 0 ];then
systemctl stop keepalived
fi
fi # 局域网之内,keepalived无法相互广播,怎么办?
# VIP=192.168.15.3 # ping -c 1 $VIP &>/dev/null # if [ $? -eq 0 ];then
# 代表VIP还可以访问 # fi & : 正确的标准输出和错误的标准输出

10、keepalived的非抢占式

实现非抢占式。
1、状态全部都有设置成backup
2、增加 nopreempt [root@lb02 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
router_id lb02
} # 检测脚本
vrrp_script check_nginx {
# 指定脚本路径
script "/etc/keepalived/checkNG.sh"
# 执行间隔
interval 5
} # 配置VRRP协议
vrrp_instance VI_1 {
#状态,MASTER和BACKUP
state BACKUP
# 开启非抢占式
nopreempt
#绑定网卡
interface eth0
#虚拟路由标示,可以理解为分组
virtual_router_id 50
#优先级
priority 90
#监测心跳间隔时间
advert_int 1
#配置认证
authentication {
#认证类型
auth_type PASS
#认证的密码
auth_pass 1111
}
#设置VIP
virtual_ipaddress {
#虚拟的VIP地址
192.168.15.3
}
# 调用检查
track_script {
check_nginx
}
}

11、四层负载均衡

1、假设有三台MySQL数据库,请问怎样负载均衡?

在非HTTP协议的情况下,采用的四层负载均衡的方式负载服务。

注意:四层负载均衡中不支持域名。

案例:使用四层负载均衡实现SSH的代理,端口为1122
[root@lb01 stream]# cat ssh.conf
server {
listen 1122;
proxy_pass 172.16.1.5:22;
}

12、部署一个项目

https://gitee.com/lylinux/DjangoBlog?_from=gitee_search

10、架构--keepalive、四层负载均衡的更多相关文章

  1. Nginx四层负载均衡概述

    目录 Nginx四层负载均衡概述 什么是负载均衡 负载均衡应用场景 四层,七层集群架构 四层负载均衡总结 Nginx如何配置四层负载均衡 nginx四层负载均衡端口转发 Nginx四层负载均衡概述 什 ...

  2. Nginx四层负载均衡

    目录 Nginx四层负载均衡概述 Nginx如何配置四层负载均衡 使用nginx四层负载均衡实现tcp的转发 Nginx四层负载均衡概述 什么是四层负载均衡 四层负载均衡是基于传输层协议包来封装的(如 ...

  3. Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

    通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至 ...

  4. 搞懂分布式技术10:LVS实现负载均衡的原理与实践

    搞懂分布式技术10:LVS实现负载均衡的原理与实践 浅析负载均衡及LVS实现 原创: fireflyc 写程序的康德 2017-09-19 负载均衡 负载均衡(Load Balance,缩写LB)是一 ...

  5. 14.Nginx四层负载均衡

    1.七层负载均衡: 根据url 调度不同的集群 url.cheng.com 10.0.0.5 10.0.0.7 /pass 10.0.0.8 /user 1.web01和web02配置 (只不过代码不 ...

  6. 14、Nginx四层负载均衡

    1.Nginx四层负载均衡基本概述 1.1.什么是四层负载均衡 四层负载均衡基于传输层协议包来封装的(如:TCP/IP),那我们前面使用到的七层是指的应用层,它的组装在四层基础之上,无论四层还是七层都 ...

  7. 架构设计:负载均衡层设计方案(2)——Nginx安装

    来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx重要算法介绍 1一致性Hash算法 2轮询与加权轮询 Nginx的安装 1 ...

  8. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  9. 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

    1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...

随机推荐

  1. 基于ShardingJDBC的分库分表及读写分离整理

    ShardingJDBC的核心流程主要分成六个步骤,分别是:SQL解析->SQL优化->SQL路由->SQL改写->SQL执行->结果归并,流程图如下: sharding ...

  2. 离线环境安装使用 Ansible

    之前写了一篇介绍 Ansible 的文章 ,今天回顾看来写的有些匆忙,一些具体的操作步骤都没有讲明白,不利于读者复现学习.最近又申请了一个几百台机器的环境,正好借此机会把如何在离线环境中使用 Ansi ...

  3. day 19 C语言顺序结构基础2

    (1).算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行步骤,以下说法正确的是[A] (A).先执行a+b的r1,再执行(d+e)的r2,再执行c*r2的r3,最后执 ...

  4. winfrom 双缓冲

    在窗体load函数中 this.DoubleBuffered = true; //控件,需要反射的方式设置 Type dgvType = this.dgv.GetType(); PropertyInf ...

  5. 【机器学习】kNN

    机器学习算法--kNN 目录 机器学习算法--kNN 1. 算法原理 2. 算法实现 2.1 kd-tree构造 2.2 kd-tree查询 2.3 kNN算法实现 3. 算法测试 Ref 1. 算法 ...

  6. 【小记录】解决链接libcufft_static.a库出现的错误

    程序中使用了 cv::cuda::dft() 函数,需要在链接的时候使用libcufft_static.a这个库.链接出现大量类似错误:error: undefined reference to __ ...

  7. AOP操作-AspectJ配置文件

    AOP操作(AspectJ配置文件)(了解) (实际中大部分用注解方式) 1,创建两个类,增强类和被增强类,创建方法 2,在spring配置文件中创建两个类对象 3,在spring配置文件中配置切入点

  8. How to check in Windows if you are using UEFI

    You might be wondering if Windows is using UEFI or the legacy BIOS, it's easy to check. Just fire up ...

  9. HTML 基础2

    当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化.有以下三种方式来插入样式表: 外部样式表 内部样式 内联样式 外部样式表 当样式需要被应用到很多页面的时候,外部样式表将是理想的选择.使 ...

  10. el表达式中的${param}用法

    el表达式中的${param}? 1. 2. ${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获 ...