Nginx系列-正向代理和反向代理
文章目录
- Nginx系列-正向代理和反向代理
- 1. 三个对象
- 2. 两种场景代理
- 2.1. 正向代理
- 2.2. 反向代理
- 3. 两种场景的对比
- 3.1 为什么叫做反向代理
- 3.2 正向代理和反向代理的作用
1. 三个对象
- 客户端:发出请求到代理,并接收代理的响应
- 代理服务器:接收客户端的请求,将其转发到目标服务器并接收到响应后再将响应转发到客户端
- 目标服务器:接收代理转发的请求,处理后返回结果
2. 两种场景代理
2.1. 正向代理
比如说:我要使用VPN访问公司的网络
- 我就是客户端
- VPN就是代理
- 公司网络就是目标服务器
从这个场景我们可以清晰的了解到:我是清楚我的目标服务器的,换句话就是说客户端知道目标服务器,这就是正向代理
2.2. 反向代理
比如说:你要访问某一个网站,该网站是部署在多台服务器上的应用,并使用了一台nginx做了负载均衡和反向代理,用户只用访问nginx服务器的就可以访问到网站,用户在发出请求之前并不知道目标服务器是哪个,目标服务器被nginx反向代理
- 浏览器就是客户端
- nginx就是代理
- 网站就是目标服务器
从这个场景我们可以清晰的了解到:客户端是是不清楚目标服务器的,这就是反向代理
3. 两种场景的对比
3.1 为什么叫做反向代理
- 这是因为正向代理是通过代理服务器代表客户端向目标服务器发送请求
- 而反向代理则是代理服务器代表目标服务器接收来自客户端的请求
- 正向代理的代理对象是客户端,而反向代理的代理对象是服务器
3.2 正向代理和反向代理的作用
正向代理和反向代理都是网络代理服务器,它们在网络通信中起着不同的作用。
- 正向代理的作用如下:
- 访问控制和过滤:正向代理可以作为一种访问控制的手段,限制对特定资源或者网站的访问。它可以根据规则过滤请求,禁止或允许特定的请求通过。
- 提供匿名性:正向代理可以隐藏客户端的真实 IP 地址,使其在请求其他服务器时不会直接暴露真实身份和位置。
- 访问限制和监测:正向代理可以控制对外部资源的访问,并且监测和记录客户端的请求和响应流量,用于统计分析和安全审计。
- 加速访问和缓存:正向代理可以缓存经常被请求的资源,减少响应时间和网络带宽的使用,提高访问速度。
- 反向代理的作用如下:
- 负载均衡:反向代理可以将客户端的请求分发到多个目标服务器,实现负载均衡,平衡服务器的负载,提高网站的性能和可靠性。
- 高可用性和容错性:反向代理可以将请求转发到备份服务器,当一个服务器出现故障时,自动切换到其他可用的服务器,提高系统的可用性和容错性。
- 安全性:反向代理可以作为前置网关,过滤和检测恶意请求,防止攻击和滥用请求直接到达真实服务器。
- SSL 终端:反向代理可以处理客户端和服务器之间的 SSL/TLS 握手,加密和解密流量,提供安全的通信渠道。
总而言之,正向代理和反向代理在网络通信中起到不同的作用,正向代理主要用于客户端访问控制和匿名性,而反向代理主要用于负载均衡、高可用性、安全性和 SSL 终端等功能。