什么是反向代理?
反向代理用于提供负载均衡服务,并且越来越多地通过 Web 应用防火墙、应用交付防火墙和深度内容检测,在网络中的关键接入点实施Web 应用安全。
什么是反向代理?
在网络和Web流量领域,代理是代表其他设备执行操作的设备或服务器。它位于两个实体之间并提供服务。代理是一种硬件或软件解决方案,位于客户端与服务器之间,用于管理请求,有时也管理响应。
通常,反向代理服务器位于Web服务器前端,并将客户端(例如Web浏览器)的请求转发给这些Web服务器。随后,请求的资源会返回给客户端,看起来就像来自代理服务器本身。这提供了额外的抽象和控制层,有助于确保客户端与服务器之间的网络流量顺畅传输。反向代理还可以根据多种参数定向转发请求,例如用户设备、位置、网络状况、应用健康状况,甚至一天中的具体时段。
反向代理与负载均衡器有何区别?
反向代理服务器和负载均衡器都是客户端-服务器计算架构中的组件。二者都充当客户端与服务器之间的通信中介,通过执行相关功能来提高效率。它们可以采用专用设备的形式,但在现代Web架构中,越来越多地以运行在通用硬件上的软件应用程序形式部署。虽然二者看似功能相近,但其通常在网站中部署的时机和原因各不相同,下面将对此进行探讨。
A 负载均衡器将传入的客户端请求分发到一组服务器,以确保达到令人满意的速度并优化运行效率。当请求量过大,单台服务器无法高效处理,网站需要使用多台服务器时,通常会部署负载均衡器。部署多台服务器还可以消除单点故障,提高网站的可靠性。通常,所有服务器都托管相同的内容,而负载均衡器负责分配工作负载,以充分利用每台服务器的容量,防止任何服务器过载,并尽可能缩短对客户端的响应时间。
A 反向代理接收客户端请求,将其转发到能够处理该请求的服务器,再将服务器的响应返回给客户端。只有在使用多台服务器时,部署负载均衡器才有意义;而即使只有一台Web服务器或应用服务器,部署反向代理通常也很有必要。可以将反向代理视为网站的“对外门户”。网站对外公布的是反向代理的地址。反向代理位于网站网络的边缘,接收Web浏览器和移动应用对网站所托管内容的请求。反向代理提供额外的抽象和控制层,确保客户端与服务器之间的网络流量顺畅传输。反向代理可提供:
- 增强安全性。内部网络之外无法看到后端服务器的任何信息,因此恶意客户端无法直接访问这些服务器并利用其中的漏洞。许多反向代理服务器都包含有助于保护后端服务器免受分布式拒绝服务(DDoS)攻击的功能,例如拒绝来自特定客户端IP地址的流量(拒绝列表),或限制每个客户端可建立的连接数。
- 增强可扩展性和灵活性。 由于客户端只能看到反向代理的IP地址,因此可以灵活更改后端基础设施的配置。这在负载均衡环境中尤其有用,可根据流量变化增加或减少服务器数量。
- Web加速。反向代理可通过以下技术缩短生成响应并将其返回客户端所需的时间,从而提升性能:SSL加速、智能压缩和缓存。反向代理还可通过实施Web应用安全防护,为多个应用提供联合安全服务。
反向代理为何如此重要?
反向代理用于提供负载均衡服务,以打造更流畅的Web体验;同时,越来越多的反向代理还通过Web应用防火墙、应用交付防火墙和深度内容检测,在网络中的关键接入点实施Web应用安全防护。
与云部署结合使用时,反向代理可支持云爆发和应用拆分架构,在不影响控制力或安全性的前提下,发挥云的经济效益。
反向代理如何工作?
反向代理既可以充当简单的转发服务,也可以主动参与客户端与服务器之间的交互。当代理通过实现双网络协议栈,将客户端和服务器视为彼此独立的实体时,称为全代理。
全代理会创建一个TCP客户端连接,同时创建一个单独的TCP服务器连接,两者之间相互隔离。客户端在一端连接到代理,代理则与服务器建立另一个独立连接。两端均支持双向通信。由于这两个连接彼此独立,客户端侧与服务器侧的连接绝不会混合。
F5如何处理反向代理功能?
根据环境的复杂程度和组织的需求,反向代理功能可由设备、软件或服务实现。
云原生环境
非常适合云原生环境,NGINX Plus是一款基于软件的反向代理,可像硬件设备一样执行负载均衡、第7层路由和Web性能优化。NGINX Plus还有助于提升网站性能、可靠性、安全性和扩展能力。与功能相近的硬件解决方案相比,NGINX Plus的成本低得多。借助NGINX Plus全面的负载均衡和反向代理功能,可以构建高度优化的应用交付网络。NGINX Plus既可部署在公有云中,也可部署在私有数据中心,成本低于完整代理。
混合环境
对于更复杂的混合环境,F5 BIG-IP系统 是一种全代理,可部署为完整的反向代理服务器,能够拦截、检查请求和响应并与之交互。其功能包括负载均衡和Web性能优化等基本功能,以及更高级的 流量管理 服务,例如 应用层安全,Web加速、页面路由和 安全远程访问。

