代理和负载均衡概述
代理
正向代理
提供网络通道:解决客户端由于防火墙或网络限制无法访问服务端的问题,如访问google等国外网站。 隐藏客户端身份:服务端只感知代理服务器,无法获取真实客户端,如黑客控制肉鸡。
反向代理
提供对外服务:代理服务器暴露公网地址,接收请求并转发到内网服务器。 负载均衡:根据预设策略将请求分发到多台服务器。 提供安全保障:作为服务端防火墙,避免服务端遭受网络攻击。 提高访问速度:基于网络位置设置就近代理服务器,提高资源获取速度,如CDN服务器。
区别
正向代理代理客户端,服务端认为请求来自代理服务器;反向代理代理服务端,客户端认为提供服务的是代理服务器。 正向代理通常由客户端架设,与客户端同处一个局域网;反向代理由服务端架设,与服务端同处一个局域网。 正向代理通常解决访问限制的问题,反向代理通常解决对外服务和负载均衡的问题。
负载均衡
负载均衡介绍
负载均衡是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
基于DNS的负载均衡 在DNS服务器中,可以为多个不同的地址配置相同的名字,最终查询这个名字的客户机将在解析这个名字时得到其中一个地址,所以这种代理方式是通过DNS服务中的随机名字解析域名和IP来实现负载均衡。 反向代理负载均衡 通常的反向代理技术,支持为同一服务配置多个后端服务器地址,以及设定相应的轮询策略。请求到达反向代理服务器后,代理通过既定的轮询策略转发请求到具体服务器,实现负载均衡,如Nginx的七层配置形式。 基于NAT的负载均衡 该技术通过一个地址转换网关将每个客户端连接转换为不同的内部服务器地址,因此客户端就各自与自己转换得到的地址上的服务器进行通信,从而达到负载均衡的目的,如LVS和Nginx的四层配置形式。
网络模型和负载均衡
四层负载均衡(IP+端口) 四层负载均衡是IP+端口的实现,以TCP协议为例,四层负载只需解析TCP报文头部,按照负载均衡算法选择相应服务后端,将报文目的地址和端口修改为真实后端服务器地址和端口,并转发请求到对应后端服务器。因此在四层负载情况下,负载均衡起到类似路由转发的效果,TCP连接的建立是客户端和服务端直接建立的。 四层负载常用软件有: LVS(常用,稳定性最好) Nginx(需要额外编译stream模块) HaProxy 七层负载均衡(应用层协议如HTTP) 七层负载也称为内容交换,通常与具体应用层协议关联,根据客户端发送请求内容选择服务端进行负载转发,如Nginx基于请求URL配置转发。七层负载情况下,负载均衡与反向代理类似,客户端和服务端分别与负载均衡器建立连接,因此效率要低于四层负载。
负载均衡和反向代理
负载均衡与反向代理是两个概念,由于其网络架构形式类似(都用于接入服务端),带来一定程度的混淆。
知乎:反向代理和负载均衡有何区别?
评论