【网络时怎样连接的】| 【04】服务端的局域网、服务器负载均衡

1、Web服务器的部署地点

在公司部署Web服务器

部署方式:
- 和路由器直接连接
- 通过防火墙隔离
- 部署在接入服务商数据中心的情况

【防火墙】:用于抵御外部网络攻击的机制;

将Web服务器部署在数据中心

数据中心通过高速线路直接连接到互联网的核心部分,因此将会获取很高的访问速度;

2、防火墙的结构和原理

如何设置包过滤的规则

首先要观察包是如何流动的,通过接收和发送方的IP可以判断出包的起点和终点;
因此我们可以设置允许起点为任意,终点为Web服务器的IP地址通过;

通过端口号限定应用程序

允许Web服务器的所有包通过会很危险,为了进一步降低风险,我们最好阻止除非必要服务以外 的所有应用程序包通过;
当要限定某个应用程序时,可以在判断条件上加上TCP头部或UDP头部中的端口号;

通过控制位判断连接方向

由于Web使用TCP双向收发网络包,无法单纯阻止Wen服务器访问互联网;
我们需要使用TCP头部中的控制位来判断访问的方向,若第一个包访问从Web发往互联网则阻止它,
	故后续无法响应即操作失败,从而阻止Web对互联网的访问;

因此,我们可以通过接收方IP地址、发送方IP地址、发送方端口号、TCP控制位可以判断出通信的起点和终点、应用程序种类、访问的方向;

从公司内网访问公开区域的规则

需要设置互联网和公开区域之间、公司内网和互联网之间、或公司内网与公开区域的包过滤规则;

外部无法访问公司内网

防火墙功能:
	- 允许或阻止网络包的通过;
	- 地址转化功能;
在互联网和公司内网中需要进行地址转换才能进行传输,即私有地址与公有地址之间的对应关系应被自动管理;

路由器没有私有地址的路由信息,所有接收方为私有地址的包,经过互联网中的路由器将会被丢弃,
因此需要地址转换,防火墙内置路由能够自行配置私有地址,使得公司内网访问公开区域时即可以使用私有地址来进行;

参考:八、虚拟专用网VPN与网络地址转换NAT

防火墙无法抵御的攻击

防火墙无法对特定数据的包进行抵御;
【解决方法】:
	- 在Web服务器上修复Bug;
	- 防火墙之外部署检查包的内容并阻止有害包的设备或软件;

3、通过将请求平均分配给多台服务器来平衡负载

性能不足时需要负载均衡

【采用增加线路带宽】:
- 当带宽增大后,即能够传输大量的网络包,从而导致服务器的性能跟不上,由于对于CGI需要动态生成数据的情况下,增加服务器负担;

【使用多台服务器】:
- 使用多台服务器来减少每台服务器的访问量,那么该如何分配呢?;
	- 【通过DNS服务器来分配】:
		- clent需要先向DNS查询IP地址,每次查询到都会按顺序(轮询)返回不同的IP地址; 
		- 但改方式有缺点,一旦一台出现故障,那么它依然会返回服务器的IP地址,但我们希望它跳过;
		- 当某些操作下,需要跨多个页面时,期间访问的服务器变化,可能会造成操作无法继续;

使用负载均衡器分配访问

为了避免上述的问题,使用负载均衡器时,先用负载均衡器的IP地址代替Web服务器的实际地址注册到DNS服务器上;
此时clent会认为负载均衡器为一台Web服务器,并向其发起请求,在由负载均衡器判断将请求转发给那台服务器;

【如何判断将请求转发给那台Web服务器】
- 可以根据是否跨多个页面、Web服务器负载状况来判断;
- 负载均衡器定期采集Web服务器的CPU、内存使用率、来判断负载状况;
- 也可以向其发送测试包,根据响应时间判断负载状况;
- 但该方式下,过于密集去查询负载,将会增加服务器负载;

【如何判断一个操作要跨多个页面】
- 方法1:必须先将Web服务器一段保存在相应的信息中,但这会增加服务器负担;
- 方法2:可以在请求之间判断是否有相关性,可以在发送表单数据上家伙是那个关联信息或HTTP头部字段添加信息(cookie);

4、使用缓存服务器分担负载

如何使用缓存服务器

除了使用上述方法,还可使用将整个系统划分成不同功能的服务器:Web、数据库、缓存等;
【缓存服务器】:是一台通过代理机制对数据进行缓存的服务器,介于Web服务器和客户端之间,对Web服务器具有中转功能;
	当中转时将Web服务器返回的数据保存在磁盘中,代替Web服务器将数据交给客户,以此提升速度;

但该方法也具有缺点:
- 缓存不是永久可用,需要更新;
- CGI返回的数据无法缓存;

- 但也能够为Web服务器分担部分请求,减轻负担;

缓存服务器通过更新时间管理内容
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

缓存服务器需要代替Web服务器被注册到DNS中;
缓存服务器收到请求后,会检查请求的内容是否在缓存中,若不在,则添加Via字段,表示经过缓存服务器转发,将消息转发给Web服务器;
在转发前需要判断应该将请求转发给那台服务器;

【当有多台Web服务器,一台缓存服务器时】:
- 则需要根据请求消息的内容来判断应该转发给那台服务器;
- 【实现方法】:
	- 根据目录名来判断,使用该方法需要先在缓存服务器上进行配置,缓存服务器会根据配置规则来转发请求消息;
	- 在此过程,缓存服务器会以client的身份向目标服务器发送请求消息,此时缓存服务器相等于clent,来接收响应信息,
	- 缓存服务器会在响应消息加上Via字段消息(表示中转),后缓存服务器以Web服务器的身份向clent发送响应消息,
		且缓存服务器会将响应消息缓存下来,并记录保存时间;
	- 当接收客户端消息时,会在请求消息添加If-Modified-Since头部并将请求转发给Web服务器,询问服务器数据是否发送变化;

正向代理
在这里插入图片描述

改善服务器性能还能够在客户端一侧部署缓存服务器;
【客户端一侧部署缓存服务器】:该方式被称为正向代理,为了用来缓存以及实现防火墙;

【防火墙】:用来阻止互联网和公司内网之间的所有包,但需要执行必要的包能够通过——利用代理;
- 代理会先接收client的请求消息,在将其转发到互联网中,可以使用代理的缓存,对于以前访问过的数据,之间在代理服务器即可获得,无法访问互联网;
- 代理能判断内容是否允许访问,禁止员工访问未向网站,或其他网站(根据IP地址或端口号);

【使用正向代理】:在浏览器中填写正向代理的IP地址,即可;
- 当浏览器中输入域名时,浏览器会忽略网址栏的内容,直接将所有请求(完整网址)发送给正向代理;
	在没有正向代理时,则会提取域名后面的文件名或目录名;

在这里插入图片描述
反向代理

基于正向代理,该代理方式需要在浏览器中进行设置,造成繁琐以及容易出错;
反向代理对其进行改良:
- 通过将请求消息中的URI中的目录名于Web服务器进行关联(DNS服务器解析引导),使得代理能够转发一般的不包含完整网址的请求消息;

透明代理

【透明代理】:查看请求消息的头部消息,IP头部中包含接收方的IP地址,知道该地址即可知道用户要访问哪个服务器;
	- 在HTTP1.1中添加了一个Host字段,来判断转发目标;
	- 该方法不需要设置浏览器参数以及在缓存服务器上设置转发目标;
	- 集合了反向代理和正向代理的优点;
必须将透明代理放在请求消息从浏览器传输到Web服务器的路径中,当消息经过时进行拦截,在转发给Web服务器;

5、内容分发服务

利用内容分发服务器分担负载

在客户端部署缓存服务器,就不受拥塞点的影响,当该方式web服务器无法控制它;
最优的方法:将自己控制的缓存服务器放在客户端的运营商,即离用户近,又能够被web服务器控制;
	- 我们将在主要的运营商中部署缓存服务器;
	- 当Web服务器与缓存服务器建立关联,client访问Wen服务器时,即访问CDSP的缓存服务器;

【内容分发服务CDN】:一些专门从事相关服务厂商(CDSP)来部署服务器,并租借给Web服务器运营者;

缓存服务器可以提供多个网站的数据以此给Web服务器运营者减低成本;

如何找到最近的缓存服务器
在这里插入图片描述

【需要用户不进行配置,也能请求消息发送到缓存服务器】:
- 【方法一】:像负载均衡一样用DNS来分配访问,在DNS返回Web服务器IP地址时,对返回的内容进行加工,使其能够返回距离客户端最近的
	缓存服务器的IP地址;
	- 首先事先从缓存服务器部署地点的路由器收集信息;每台服务器的部署地点有4台路由器,则我们需要分别获取4台路由器的路由表,将其集中
		在DNS服务器上;
	- DNS根据路由表查询从本机到客户端DNS的路由信息,估算出大致距离,即可找到哪个路由器距离客户端DNS最近;

在这里插入图片描述
通过重定向服务器分配访问目标

通过重定向访问最近的缓存服务器;
在HTTP中有Location字段,该字段填写Web服务器要转移到其他服务器上;
- 首先要将重定向服务器注册到Web服务器端的DNS服务器上,客户端会将HTTP请求消息发送到重定向服务器上,后续方法和上述一致;

【缺点】:在于增加了HTTP消息的交互次数,开销较大;
【优点】:该距离估算精度较高;

除了以上方法还能够通过网络包往返时间估算到缓存服务器的距离;

在这里插入图片描述
缓存的更新方法会影响性能

缓存内容的更新方法会影响缓存服务器的效率;
【改善】:让web服务器在原始数据发送更新时,立即通知缓存服务器,使得缓存服务器上的数据一直保持更新,即不需要每次确认原始数据是
	否有变化;

猜你喜欢

转载自blog.csdn.net/weixin_45926547/article/details/124992337