> 文章列表 > 分布式系统反向代理设计与正向代理

分布式系统反向代理设计与正向代理

分布式系统反向代理设计与正向代理

反向代理与正向代理分析

代理服务器:位于发起请求的客户端与原始服务器端之间的一台跳板服务器,代理服务器分为正向代理服务器和反向代理服务器

分布式系统反向代理设计与正向代理

  • 正向代理 :代理客户端,隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端发出的请求都被代理服务器代替,正向代理最典型的应用就是代理浏览器访问,实现资源的访问控制,缓存等功能。正向代理部署在用户端。

  • 反向代理 : 帮客户端把请求转发到真实的服务器, 用于解决单机处理能力不足问题,多机冗余部署,代理隐藏目标IP。反响代理部署在服务端

反向代理在分布式架构中的作用

  • 承载海量连接: 承担更多的用户高并发连接
  • 保证内网的安全: 任何来自外部用户的请求都必须先经过代理服务器进行安全校验
  • 负载均衡: 充当负载均衡服务器均衡地分发请求,平衡集群中各个Web服务器的负载压力
  • 缓存加速Web请求: 缓存真实Web服务器上的静态资源,减轻真实Web服务器的负载压力
  • 隐藏目标服务器: 用户实际看到的只是反向代理,后端真是服务被隐藏

反向代理

LVS

Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术

LVS反向代理机制

  • 四层负载:通过报文中的目标地址和端口
  • 七层负载:通过报文中的真正有意义的应用层内容

LVS后端架构组成

分布式系统反向代理设计与正向代理

  • Load Balancer:Director Server 最前端的负载均衡层, 也就是
  • Server Array:RealServer 服务器集群层,负责具体业务
  • Shared Storage:数据共享存储层

HAProxy

  • HAProxy是一个使用C语言编写的开源产品,提供高可用性负载均衡,支持基于TCP和HTTP的应用程序代理
  • HAProxy用法详解 全网最详细中文文档

Nginx

Nginx 是一个强大的 Web 服务器软件,用于处理高并发的 HTTP 请求和作为反向代理服务器做负载均衡。

具有高性能、轻量级、内存消耗少,强大的负载均衡能力等优势。

Nginx反向代理机制

  • 四层负载:通过报文中的目标地址和端口
  • 七层负载:通过报文中的真正有意义的应用层内容\\

Nginx整体架构

分布式系统反向代理设计与正向代理

  • 特点: 模块化、事件驱动、异步、 单线程、 非阻塞
  • Master进程:监视工作进程的状态、当工作进程死掉后启动新进程、处理信号和通过进程通信的管道机制,Master指令下发到Worker
  • Worker进程:处理客户端请求,从主进程处获得信号做相应的事情
  • Cache loader进程:加载缓存索引文件信息
  • Cache manager进程:管理磁盘的缓存大小,超过预定值大小后最少使用数据将被删除
  • Master-Worker 模式优点:各Worker进程之间互相不会影响、独立进程,不需要加锁,所以省掉了锁带来的开销提升稳定性,降低系统风险
  • Nginx 惊群问题

参考

  • Nginx 从入门到实践