陈志伟博客

善始者实繁,克终者盖寡。

正向代理和反向代理的区别

简单点说,二者都是A通过B去访问C,正向代理是A知道B的存在并且A上面可能还需要做一些特殊配置,反向代理则是A不需要做任何配置也不知道B的存在或者说A认为B就是他要访问的C。正向代理通常是因为A不能访问C,反向代理则是C为了安全、稳定等因素考虑而不让A去直接访问它。正向代理通常是在客户端做一些事情才能实现,而反向代理是在服务端做一些事情来实现的。

正向代理(Forward Proxy)通常被称为代理,是大家经常遇到的情况,比如某个国外的在网站在大陆被屏蔽了,你想在国内访问的话需要挂代理,那么这个代理就是正向代理。需要你在自己机器上做一些相关操作,比如安装个代理软件什么的来实现。

反向代理(reverse proxy),通常系统管理员(System Admin)会遇到,为了隐藏服务(一般是网站)的真实地址,很多大一点的公司都会使用反向代理的。用户访问到的其实是反向代理服务器,而真正的服务器其实隐藏在了反向代理后面。

反向代理还有个用处就是分域代理,不同区域的用户访问到不同的反向代理服务器,这种情况一般是为了提高网站的访问速度。比如有个网站的真正服务器在北京,而在北京、云南或者福建的用户访问时都感觉速度非常快,这就是分域代理的功劳。网站方会在不用地区都放置反向代理服务器,用户访问到的都是离用户最近的反向代理服务器。而反向代理服务器到真正的后端服务器其实一般走的都是运营商的专线,需要网站方花钱来买的,所以速度非常快,很多大型的网站为了提高用户体验通常都会这样做的。

关于网站怎样才能让用户访问到离用户最近的反向代理服务器就是 DNS 的功劳了,这个以后有空再单独说。

Comments