反向代理是什么?用途有哪些?
反向代理在现代网路架构中扮演了重要角色,提供更多的灵活性与安全性。但反向代理是什么呢?本文将深入探讨反向代理的基本原理,并介绍代理伺服器的概念,比较最常见的两种代理伺服器:正向代理与反向代理。
代理伺服器是什么?
在了解反向代理之前,需要先知道代理伺服器的基本概念与运作方式。 「代理伺服器(Proxy Server)」放置于使用者(或称为客户端,Client)与网站伺服器之间。依照不同部署方式与用途,代理伺服器有多种类型,例如正向代理伺服器、反向代理伺服器、透明代理伺服器、匿名代理伺服器、高匿代理伺服器、住宅代理、代理链等等。
在未使用代理伺服器的情况下,使用者造访网站,存取网页资料的请求会直接从使用者的装置传送至网站伺服器。假设你在 YouTube 上点选影片,你的装置就会连接 YouTube 的主机伺服器,要求其回传该影片的内容。资料传输过程中产生的流量,直接透过网际网路在两端互通。
【未使用代理伺服器示意图】
代理伺服器就是在客户端和网站伺服器两边,扮演中间人的角色,代替其中一方发送数据,把直接流量变成间接流量。使用代理伺服器虽然会在资料传输过程增加额外的程序,但基于资安、隐私、存取权限控制等考量,代理伺服器广受欢迎。其中最常见的就是正向代理与反向代理,下面段落会更详细介绍这两种代理伺服器与其用途。
【使用代理伺服器示意图】
反向代理伺服器是什么?
反向代理(Reverse Proxy)为代理伺服器的一种,与一组或多组主机伺服器相连。拦截由客户端传送至这些伺服器的存取请求,并代替主机伺服器将资料与资源传送给客户端装置。在这样的情况下,客户端不会得知实际主机的存在、运作模式,或 IP 地址等等相关资讯。
【反向代理示意图】
反向代理的用途
现代网路架构中,反向代理相当普遍,许多大型网站都会使用多层的反向代理,包括 Google、Amazon、Apple 等等,但是使用反向代理有什么用途呢?
- 隐藏伺服器资讯: 隐藏内部伺服器的 IP 地址和网路架构架构。
- 负载平衡:分散流量到多个内部伺服器,提升系统性能。
- 增加可用性:在主机伺服器发生停机问题时,反向代理可以来自客户端的请求转发至其他可用的伺服器,让网站或服务持续运作。
- 资讯安全:反向代理伺服器可应用在 DDoS 攻击防御上,缓解高流量。另外,反向代理也可处理 HTTPS 加密,提升整体资安机制。
- 分担伺服器工作量:反向代理能够透过处理 HTTPS 加密与解密的工作,减少主机伺服器的工作量,释放运算资源。
- 网页加速:以快取的方式暂存主机伺服器的资料,减少网页在客户端载入的时间。
反向代理跟 CDN 一样吗?
反向代理伺服器可以透过快取来加速网页载入速度,这样跟 CDN(内容传递网路 Content Delivery Network)是一样的吗?其实 CDN 就是利用反向代理的概念,加以延伸出的架构。虽然原理相近,也有类似的功能,但两者在网路架构中着重的面向稍有不同。
反向代理和 CDN 都属于客户端和伺服器间的中介角色、可以快取的方式暂存内容,并提升资料传输效能与网路安全性。但相较于针对特定主机伺服器或单一企业组织的反向代理伺服器,CDN 更强调以数量庞大的快取伺服器分布于全球多个地理位置,提供全球性的网页加速服务。
正向代理伺服器是什么?
反向代理安置于主机伺服器前端,代替其接收来自客户端的请求;而「正向代理(Forward Proxy)」则是置于客户端前,代替其向主机伺服器发出请求。同样作为中间人的角色,反向代理与正向代理有截然不同的作用,两者最根本的差异在于接收与传出的流量导方向相反。
反向代理让客户端无法得知主机伺服器的资讯;而使用正向代理后,主机伺服器对提出存取请求的客户端一无所知,例如使用者的IP 地址、地理位置、浏览器资讯、作业系统资讯、装置资讯、网路供应商资讯、存取请求行为和HTTPS 标头资讯等。
【正向代理与反向代理运作方式比较示意图】
正向代理的用途
放置在客户端前的正向代理在实务上有四大用途:
- 隐藏客户端资料:客户端的 IP 地址与其他资讯可由正向代理隐藏,主机伺服器只能看到代理伺服器的 IP。
- 突破访问限制:帮助客户端存取被防火墙或地区限制的内容,也就是所谓的「翻墙」。
- 访问权限管制:控制客户端可以访问的网站或资源,例如企业或学校可以封锁 Facebook 等社群网站,让内部的使用者无法访问。
- 网页加速:代理伺服器可以快取内容,减少客户端与主机伺服器之间的重复请求。
正向代理 |
反向代理 |
|
服务对象 |
客戶端(代表客戶端发送请求) |
伺服器端(代表伺服器发送请求) |
隐藏资讯 |
客戶端(IP 地址和其他资讯) |
伺服器(內部架构和 IP 地址) |
用途 |
- 提升客戶端隐私性 - 客戶端突破访问限制 - 客戶端访问权限管制 |
- 隐藏伺服器架构 - 负载平衡 - 提供高可用性 - DDoS 防御 - 处理 HTTPS 加密/解密 |
如何选择反向代理服务商
一般来说,企业决定开始使用反向代理伺服器后,下一步就是选择反向代理的服务商。但反向代理服务商选择众多,有开源工具 Nginx、Apache、HAProxy、Traefik Proxy、Caddy;商用代理商解决方案 Envoy、Smartproxy;与专注快取功能的 Squid 等都可以协助企业架设反向代理。那企业在做选择的时候,有哪些考量要点呢?
功能需求:首先需要厘清使用反向代理的目的,以及著重哪些功能。例如,若用于负载均衡,应考虑是否支持多种负载均衡演算法;若用于安全需求,应确认是否支援HTTPS、DDoS 防护或用户身份验证;若用于内容快取,则需检查是否具备完善的快取管理功能。
- 预计使用流量:根据企业的流量需求选择合适的反向代理工具。考虑是否具备弹性扩展的能力,以适应业务成长。
- 系统相容性:服务商的反向代理伺服器是否与企业原有的 IT 架构相容。
- 费用:根据功能与需求所选择的反向代理是否符合成本考量。例如自行架构反向代理伺服器需考量硬体设备成本,而使用云端服务则会有每月固定支出等。
- SLA(服务水准协定):确认服务商提供的 SLA 中是否明确列出承诺的正常执行时间、交付时间、回应时间和解决时间等指标。例如服务可用性是否达到 99.9% 或以上,是否包含罚款机制,并查询该服务商是否有公开的服务可用性历史记录。以确保服务可以支援企业营运,避免发生停机问题。
- 技术支援:服务商是否提供完善的技术支援是关键考量,以在系统出现问题时,第一时间协助排除故障。例如是否提供 24/7 的技术支援、技术支援的方式为电子邮件或其他即时通讯、是否以企业所在国家的语言进行技术支援。
介于客户端与主机伺服器的代理伺服器类型与功能多元,已是现代网路中不可或缺的架构,其中又以正向和反向代理最常见。反向代理可隐藏主机伺服器端的资讯、提升高用性与安全性,并协助主机伺服器平衡流量。正向代理则可以加强访问网页的权限控制与客户端的隐私安全。但两者皆可在不同的场景,提升系统性能、保障资讯安全,并满足特企业营运需求。
立即联络晟崴科技为您提供CDN规划服务