3.1 正向代理
3.1.1 一句话:
如果我们要访问 www.google.com 但是直接访问不到,则需要通过代理服务器来访问,这种代理服务就称为正向代理
3.1.2 一图胜千言
解读上图:
- 我们知道 www.google.com ,但是访问不到
- 所以使用代理服务器帮助我们 (即客户端) 来上网,注意帮助的对象是客户端,这种代理,我们称为正向代理
- 正向代理同时也隐藏了客户端信息
- 再次说明,正向代理帮助的是客户端,因此可以把 客户端+正向代理服务,视为一个整体
3.2 反向代理
3.2.1 一句话:
客户端将请求发送到代理服务器,由代理服务器去选择目标服务器获取数据后,返回给客户端,这种代理方式为反向代理
3.2.2 一图胜千言
解读上图:
- 项目设计者,不希望客户端直接访问目标 Web 服务器 (比如目标 Web 服务器是集群,如果直接访问就会提供多个公网 IP) ,而是希望提供一个统一的访问 IP,这个是理解反向代理的前提,即为什么要反向代理
- 反向代理帮助的对象是目标 Web 服务器
- 当客户端请求达到反向代理服务后,由反向代理服务来决定如何访问目标 Web 服务器 (或者是哪个 Web 服务器) ,这个过程对客户端是透明的
- 反向代理服务会暴露公共的 IP ,只要能上网,就可以访问,但是对于反向代理服务器 管理的/代理的 Web 服务器通常是在局域网内,不能直接访问,只能通过反向代理来访问
- 我们可以将 反向代理服务+反向代理服务代理的 Web 服务器 视为一个整体
- 反向代理会屏蔽 内网服务器 (也就是他代理的服务) 信息,并实现负载均衡访问
3.3 负载均衡
3.3.1 一句话:
当客户端向反向代理服务器(比如 Nginx)发出请求,如果 Nginx 代理了多个 WEB 服务器(集群),Nginx 会将请求/负载分发到不同的服务器,也就是负载均衡
3.3.2 一图胜千言
3.4 动静分离
3.4.1 一句话:
为了加快网站的解析速度,可以把动态资源和静态资源由不同的服务器来解析,降低单个服务器的压力
3.4.2 传统的项目资源部署
3.4.3 动静分离项目资源部署
|