刚步入工作跟项目时,经常会有前端的同学和你说“XXX跨域了,Nginx做一下代理”,你也明白用Nginx做一下代理就能解决跨域的问题,但是对于“代理”这两个字你既熟悉又陌生,直到有人来问你,加速器是正向代理还是反向代理?VPN是正向代理还是反向代理?负载均衡是正向代理还是反向代理?
你蒙圈了。
Q1:加速器是正向代理还是反向代理?
Q2:VPN是正向代理还是反向代理?
Q3:负载均衡是正向代理还是反向代理?
在回答这三个问题之前,来快速理解一下正、反向代理的区别
正向代理
如上图,用户
在已知目标服务器
的地址的情况下,用户
无法直接访问目标服务器
,此时就需要一台能访问目标服务器
的代理服务器
,让它来代替用户
去获取目标服务器
的资源然后返回给用户
,这种情况被称为正向代理
。
很显然,正向代理的场景下,用户明确知道目标服务器的地址,但是无法访问,需要借助一些中间手段。
反向代理
如上图,依然是用户
在已知目标服务器(代理服务器)
的地址的情况下,用户
可以直接访问目标服务器(代理服务器)
,但是实际上,用户
的请求会被转发到对应的目标服务器ABC
,比如目标服务器(代理服务器)
收到用户
的请求后发现用户
需要的资源在目标服务器A
,那么目标服务器(代理服务器)
就会去目标服务器A
获取用户
需要的资源然后返回给用户
,同样如果目标服务器(代理服务器)
发现用户
需要的资源在目标服务器B
,那么目标服务器(代理服务器)
就会去目标服务器B
获取用户
需要的资源然后返回给用户
,这种情况被称为反向代理
。
很显然,反向代理的场景下,用户只知道目标服务器的地址,并不知道目标服务器A、目标服务器B、目标服务器C的存在,整个请求转发的过程对用户来说都是无感的,从用户侧看到的“目标服务器”实则上是“代理服务器”。
那么接下来回答一下开头的三个问题
Q1、Q2、Q3答案
A1:加速器属于正向代理
A2:VPN属于正向代理
A3:负载均衡属于反向代理
评论