「故事」VPN、反向代理到底skr啥

今天是周末,二毛去找毕业同学叙旧聊天,在回来住房的路上看见二丫在贴小广告。

两人回去后,吃着西瓜,喝着冰阔乐聊了起来。

正向代理

正向代理(forward proxy):是一个位于客户端和目标服务器之间的代理服务器。客户端访问目标服务器时,不是直接访问,而是通过代理服务器去访问并获取结果,之后再把结果返回给客户端。

这种代理其实在生活中是比较常见的,VPN就是典型的正向代理,其用到的就是代理技术。

打个比方。有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。

再如现在的情况,站在房东的角度举例子:你就相当于PC电脑,中介相当于代理服务器,租客就相当于WEB服务器。

你想直接找到租客,就相当于大陆PC电脑想访问Google这台WEB服务器一样,会404 Not Found。所以得用中介(我是波妞。滑稽.gif),即代理服务器才行。

正向代理的作用

隐藏客户端真实IP地址

通过使用正向代理的方式隐藏自己的IP,以免泄露信息。按租房的情况,就是房东可以不用把自己的手机发布出去,免受接电话的困扰,转而让代理去处理这样的事情。

突破访问限制

通过代理服务器,可以突破自身IP访问限制,访问国外网站如Google、Youtube等。即,房东可以通过中介,来将信息带到原本接触不到的人的面前。

提高访问速度

通常代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。即,租房中介是专业介绍租房的,经验积累的丰富,三言两语就能把租房的情况说的明明白白。

反向代理

英文为 reverse proxy,也是一种代理服务器。

作用过程:客户端向某个部署有反向代理的网站发起请求,该请求就会先到反向代理服务器,然后反向代理会将请求转发给内网中的web服务器,web服务器处理完之后,把结果通过反向代理服务器返回给客户端。

这个过程,反向代理服务器和web服务器作为一个整体对客户端提供服务,客户端是不知道反向代理服务器的存在的,客户端只关心能够得到想要信息就好了。

其中反向代理服务器向web服务器转发请求的过程,也可以称为负载均衡。

这一个知识点可以看看我上面写的文章《通俗易懂解释负载均衡》。总的来说,负载均衡是反向代理的一种实现。

也可以在租房这个问题上举例子,不过这次是站在租客的角度:反向代理服务器就是中介,web服务器是房东,客户端就是租客。

租客去租房,找到了中介,通过实地查看后高兴的签下这套租房。租客签的租约、交的房租都是面向中介的,而中介将这些租客的交房租的请求等再转发给房东,房东收到钱后就反馈可以续租,最后中介就把续租这个响应返回给租客。

这一个过程,中介和房东作为一个整体对租客提供租房服务。租客是感知不到真实房东的存在的,租客也不需要关心这个,租客只关心能够找到好租房就可以了。

隐藏服务器真实IP

使用反向代理,可以对客户端隐藏服务器的IP地址。即,租客并不知道真实的房东。

负载均衡

反向代理服务器可以做负载均衡,根据所有真实服务器的负载情况,将客户端请求分发到不同的真实服务器上。

提高访问速度

反向代理服务器可以对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。

提供安全保障

反向代理服务器可以作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等。还可以为后端服务器统一提供加密和SSL加速(如SSL终端代理),提供HTTP访问认证等。

让我们回顾上面文章做的比喻,同样是租客、中介、房东三者之间的关系。

站在房东角度,代理服务器为正向代理:客户端是房东,正向代理服务器是中介,服务端是租客。(二丫找了中介做宣传,中介就是二丫的正向代理)。

站在租客角度,代理服务器为反向代理:客户端是租客,反向代理服务器是中介,服务端是房东。(租客们通过中介找到并签下了房子,中介将这件事情告知房东,房东同意。而在该过程,租客并不关心真实房东,那么中介是租客们的反向代理)。

所以说,看一个代理服务器,是正向代理还是反向代理,应该首先确定是站在谁的角度上,再来分析关系的。

(广...东衫,嗒嗒嗒...)

未完待续......

往期精彩:

Hi,我是二毛,一个在大城市漂泊的程序员

通俗易懂解释负载均衡

強い秘密

欢迎来到程序员二毛的世界,在这里你将走进程序员的生活,感受职场冷暖,体会生活感悟,并学习到有趣的编程技术。

包括但不限于Linux、数据库、计算机网络、PHP、数据结构算法、设计模式、实用工具资源等。

关注《程序员二毛》,后台回复 1024 领取变强秘籍;点击“菜单栏-加群交流”可进入攻城狮交流群。

聊技术,说认知,谈人生,也许吃瓜围观的你,离激情交流、碰撞思想,就差一句“PHP是世界上最好的语言”!