上一篇文章说到反向代理是用来做负载均衡的,同时我就想到了那么正向代理是不是也可以说一说,可能还是有很多人是弄不清他俩的区别是什么的吧?
那么本次文章就用借钱的例子来阐述一下什么是正向代理,什么是反向代理
正向代理
正向代理就是一个位于客户端和目标服务器之间的服务器,这是一个代理服务器
客户端为了从目标服务器获取内容,但是客户端由于限制无法直接访问到目标服务器,那么客户端就可以向一个代理服务器发送一个请求并指定目标服务器
代理服务器收到请求后,就会向目标服务器转交请求并将获得的内容返回给客户端
咱们用借钱来比喻一下,就会很容易明白
小明,想找一个老板借钱,但是小明由于自身太菜,没有办法和老板谈借钱的事情
但是小明很聪明,他认识老板身边的秘书,然后他就通过和这个秘书沟通,将借钱的事情想秘书说清楚,秘书进而去向老板借钱
整条链路,小明达到了借钱的目的,老板的钱也被借出去了,可是,老板不知道到底是谁在借钱,只知道钱给了秘书
这就是正向代理,一般是用在客户端侧,是属于客户端的代理,能够帮助客户端访问自身无法访问的服务器资源
正向代理的使用场景
- 可以突破客户端自身的访问限制
- 可以提高访问服务器的速度
- 可以隐藏客户端的真实 IP
第一点和第三点,通过上面借钱的例子,大家比较好理解,正向代理服务器是帮助客户端去访问服务器,服务器并不知道具体的客户端是谁
提高访问服务器的速度如何理解?
一般情况下,正向代理服务器上面都会设置一个硬件缓冲区,并且会将客户端的部分请求放到缓冲区中
当有其他客户端进来访问的时候,正向带来服务器就可以将缓冲区中的数据给到客户端,进而提高访问速度
反向代理
反向代理也是一个位于客户端和目标服务器之间的服务器
反向代理就是指以代理服务器来接收互联网上的连接请求,然后将这些请求转发给内部的多个服务器
并将从服务器上得到的结果返回给互联网上请求的对应客户端,这个时候的代理服务器就是一个反向代理服务器
还是一个借钱的例子
老板想把钱借出去,但是老板自己懒得去找借钱的人,于是他就将钱给到某机构,让这个机构把自己的钱借出去
这个时候,小明仍然缺钱,于是找到了某机构借钱,小明借到的这个钱,其实是老板的,但是小明不会知道这个钱具体是谁的,他只知道是机构借给他的
这就是反向代理,一般是用在服务端侧,是属于服务端的代理,一般是用来做服务端的负载均衡
反向代理的应用场景也就不言而喻了吧,与上面正向代理相对的也有如下几点:
- 可以做负载均衡
- 可以提高访问服务器的速度
- 可以隐藏服务端的真实 IP
- 可以做服务器的安全保障
前三点都比较好理解,第一点上一篇文章说过,那么第四点如何理解呢?
外部的请求都是先过代理服务器,再到内部服务器上的,那么在代理服务器上面就可以做一些安全的能力,例如 防 DDOS , IP 白名单,加密的能力等等
正向代理和反向代理的区别
看了上述的例子对于正向代理和反向代理的区别,我们再来简单的对比一下
正向代理,属于客户端代理,服务端不知道到底是谁访问自己
反向代理,用于服务端,属于服务端代理,客户端不知道自己具体是访问的哪个服务器
当看到正向代理和反向代理的时候,咱们想想借钱的案例就懂了
今天就到这里,学习所得,若有偏差,还请斧正
欢迎点赞,关注,收藏
朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是阿兵云原生,欢迎点赞关注收藏,下次见~