什么是反向代理?为什么要使用反向代理?
作为在线业务,您对自己有很多期望。您的网站必须始终快速、安全和可靠,足以让访问者再次光顾。在这篇文章中,将探索企业用来运行安全、高性能网站的另一种常用方法——它被称为反向代理。
什么是代理服务器?
简而言之,互联网可以被理解为一组称为客户端的设备和程序,它们与存储网站的其他设备和程序(称为服务器)进行通信。当您访问网站时,您的网络浏览器(客户端)向网站的服务器发出请求,服务器返回包含在浏览器中显示网页所需的所有文件的响应。
请求和响应可能会遇到客户端和服务器机器之间的其他服务器——这些被称为代理服务器。
在计算机网络中,代理服务器,或简称代理,是位于客户端和托管网站的服务器之间的服务器(我们称之为“源”服务器)。代理处理客户端请求并以某种方式优化网络,例如增强安全性、速度或可靠性。
术语“代理服务器”通常是指一种称为转发代理的代理。转发代理位于一台或多台客户端机器的前面,处理来自外部网络(如互联网)的传出请求和传入响应。这样,客户端永远不会直接与其他服务器通信——转发代理代表客户端进行通信。
客户端可能想要使用代理服务器的原因有多种。一个是匿名性:由于转发代理在浏览互联网时充当您的“面孔”,因此任何跟踪软件都很难将您的活动追溯到您的掩码 IP 地址——它只会看到请求来自您的代理服务器,不是您的客户端机器。
转发代理也可以施加浏览限制。例如,公司或学校可以通过拦截来自网络的传出请求并过滤掉对禁止网站的请求,使用转发代理阻止某些网站。
代理服务器还可用于保护客户端免受有害流量的影响、监控客户端机器的活动以及缓存页面内容以加快浏览速度。不过,最重要的是转发代理为客户端工作。
什么是反向代理?
反向代理是一种位于一个或多个源服务器之前的代理服务器,负责处理和转发来自客户端的请求。反向代理提供额外的安全和性能层来优化网站或 Web 服务。
反向代理的工作原理是拦截来自客户端的请求,对请求执行一些操作,然后将请求发送到网络中适当的源服务器。源服务器的响应然后通过反向代理传回,给客户端的印象是代理服务器自己处理了请求。
如果您运行一个网站,您可以将反向代理视为客户端和您的站点之间的网关——客户端仅与您的反向代理服务器直接通信,而不是与您的站点基础设施和私有数据所在的源服务器进行通信。
正向代理和反向代理在功能上相似,但它们并不完全相同。关键的区别在于:正向代理通常代表发出请求的客户端工作,而反向代理通常代表接收请求的服务器(因此名称中的“反向”)。正向代理阻止与客户端或客户端组的直接通信,反向代理阻止与服务器或服务器组的直接通信。
为了实施反向代理,组织可以在内部创建一个。然而,越来越流行的替代方案是反向代理即服务,例如通过内容交付网络 (CDN)。
为什么要使用反向代理?
当直接的客户端 - 服务器连接可能更简单、更便宜时,为什么企业或组织可能会为其网站投资反向代理?
原因是反向代理可以提高网站的速度、安全性、可靠性和效率。就是这样:
负载均衡
反向代理的主要好处之一是它们能够进行负载平衡。负载平衡是在网络中的多台服务器之间分配传入流量的过程,以避免耗尽任何一台服务器的资源并保持性能。
如果一个网站每天收到一百万个请求,一个服务器将无法单独处理所有流量——需要多个源服务器。在负载平衡中,代理服务器拦截每个传入的客户端请求并将其转发到最佳源服务器,以确保在所有服务器之间平均分配流量。
网络上的原始服务器可能都托管相同的内容。或者,每个服务器可能服务于不同的目的。在后一种情况下,反向代理将负责根据请求的内容将每个请求路由到适当的服务器。
负载平衡还可以防止服务器出现故障时出现错误。如果一台服务器停止工作或必须关闭,反向代理可以将额外的流量卸载到剩余的功能服务器上,使网站保持正常运行,而对客户端几乎没有影响。
安全
反向代理服务器也可以成为网站的宝贵安全资产,充当其最重要服务器的屏障。
您的源服务器支持您的网站并可能存储敏感信息。通过向公众隐藏这些服务器,您可以大大降低数据泄露或注入的机会。更具体地说,反向代理隐藏了源服务器的 IP 地址,这使得黑客更难在您的服务器上部署分布式拒绝服务 (DDoS) 攻击和其他有针对性的攻击。
此外,可以配置反向代理来审查发往源服务器的请求。您可以将某些有害 IP 地址列入黑名单,让您的反向代理“清除”它们,并在反向代理服务器上安装软件以监控可疑活动、记录请求和响应,并控制任何突然涌入的流量。
速度
网站所有者也可以利用反向代理来提高性能。例如,您可以将代理配置为压缩传出文件,确保它们比未压缩文件更快地传送到客户端。
反向代理服务器还能够缓存内容并根据地理位置进行传送。例如,CDN 可以在其全球分布的代理服务器上存储网站的副本。当客户端 ping 网站时,最近的代理会将缓存的内容传送给他们,从而显着提高性能。这种方法称为全局服务器负载平衡 (GSLB)。
为了进一步提高性能,代理服务器可以处理传入和传出文件的SSL/TLS加密和解密。这个过程是资源密集型的,因此将它委托给反向代理可以释放源服务器上的资源来处理其他事情,比如从数据库中获取或构建网页。
维护
最后,反向代理服务器使分布在多个源服务器上的大型网站更容易执行维护和升级。反向代理作为进入网站的所有流量的单一目的地,无论其背后有多少台服务器。您的本地网络是从反向代理背后的访问者中抽象出来的。
此类配置允许 IT 人员执行服务器维护和升级,例如停用服务器、更换软件和/或硬件或解决错误。就客户而言,您站点的访问点是您的反向代理服务器——无论后面发生什么都不是他们关心的,只要您的反向代理提供他们请求的内容即可。
反向代理:不像听起来那么神秘
对于那些不熟悉的人来说,正向和反向代理可能听起来像是晦涩的术语。如果您不是从事 IT 或网络管理,您可能不必直接与他们合作。尽管如此,无论您为在其网络中实施转发代理的企业工作,还是经常访问热门网站,您每天都在使用这项技术。
自己经营在线业务?考虑反向代理服务是否有意义。如果您在服务器上存放特别敏感的资产,遇到服务器负载增加和页面加载时间变慢,或者处理过多讨厌的机器人流量,代理服务器可以解决所有这些问题以及更多 - 可能值得付出额外的成本.