负载均衡器和反向代理都是基于 Web 的现代应用程序和架构中的常用技术,可以独立部署,也可以组合部署。 本节提供了有关这些技术的概述,以及有关 ArcGIS 系统中的相关用例和这些技术提供的相关功能的评论。
许多 ArcGIS 系统在实施负载均衡时会结合反向代理使用情况。 常见的实施模式包括:
Esri 提供了一个可安装的 ArcGIS 软件组件 ArcGIS Web Adaptor,用于在 ArcGIS Enterprise 部署中提供负载均衡和反向代理功能。 Web Adaptor 并不是使用负载均衡器和反向代理构建 ArcGIS Enterprise 系统的唯一选项,但它是一种常见模式,并提供 Esri 技术支持部门支持的解决方案。 也可以使用外部硬件或软件负载均衡器,具体取决于偏好和技术要求。 工作负载类型和需求频率将有助于了解哪种类型的负载均衡器可能适合您的需求。 有关特定 ArcGIS 版本和操作系统的指导,请参阅使用第三方负载均衡器进行多机部署。
为了实现高可用性配置,可以在高可用性站点中配置 Web Adaptor 的一台计算机,并包含用于检测站点中其他计算机的逻辑,监测其状态,并在这些计算机运行状况良好时将请求转发给它们。 此逻辑是将 ArcGIS Web Adaptor 包含在系统设计中的重要实施优势,因为与手动配置的运行状况检查或负载均衡器设置相比,它可以更轻松地处理对 ArcGIS Enterprise 部署的更改。
虽然 Web Adaptor 可以在许多场景中提供负载均衡和反向代理功能,但使用 ArcGIS 构建的许多企业系统还实施了额外的外部软件或硬件组件,以实现这两项技术的功能目标。 示例包括:
随着组织从传统的本地架构(其中隔离区或 DMZ 最常用于为基于 Internet 的客户端提供对服务和终端节点的访问)转变为云架构(其中云原生服务在大多数情况下提供此功能),与反向代理和负载均衡有关的注意事项和架构实践也有所变化。
这些技术提供了包括实现可扩展性、高可用性和安全性在内的优势。
可以扩展 ArcGIS 系统以支持小型和大型部署。 为了适应不断增长的部署规模,ArcGIS 可以利用许多负载均衡方法和技术。 用于分派客户端请求的负载均衡算法可以从简单的轮询方法到更复杂的算法,这些算法会考虑当前连接计数、主机利用率或实际响应时间等因素。
负载均衡器通过将负载分配给多台计算机和适当的资源来提高性能。 在高可用性示例中,ArcGIS Web Adaptor 负载均衡器在两个 ArcGIS Enterprise 托管服务器之间分配 GIS 服务器请求。 如果您的系统有许多用户执行需要大量处理的类似工作流,例如包含长时间运行且处理器密集型事务的编辑工作流,则负载均衡器可以确保这些请求在可用硬件之间保持平衡,而对于包含高度可变的处理要求的工作流,建议采用工作负载分离而不是负载均衡。

负载均衡还可以通过在共享相同角色的站点或计算机集群之间分配请求来启用 ArcGIS 的高可用性配置。 例如,在多机 ArcGIS Enterprise 部署中配置高可用性时,负载均衡器 (ArcGIS Web Adaptor) 会交替向主要和次要 ArcGIS 托管服务器发送请求,如图所示。
在这种情况下,反向代理提供单一入口点 - 向最终用户屏蔽系统的单一 IP 地址。 反向代理按照其算法将流量定向到 ArcGIS Web Adaptor,该算法通常是轮询算法,但可能更可靠。 与 ArcGIS Web Adaptor 一样,许多负载均衡器会监测服务器运行状况或可用性,并从分发列表中移除运行状况不佳或不可用的计算机,从而为您的系统提供弹性。
此功能的方法和效率因负载均衡器而异。 一些硬件负载均衡器具有丰富的算法,可据负载或响应时间进行动态调整。 其他均衡器使用简单的轮询列表,其中列表可能会定期更新以仅反映运行状况良好的计算机。

反向代理通常会将单个 IP 地址公开给特定系统的 Internet 或 Intranet,并将请求分发到正确的资源。 这大大降低了安全风险,因为网络和系统的内部拓扑处于隐藏状态,并且在发生攻击时漏洞点数量减少。 此方法还通过为系统提供单个接入点来简化服务交付和使用。 大多数组织选择安装反向代理,因此站点不会直接显示给客户端。
可以将反向代理服务器配置为直接与 ArcGIS Server 通信,也可以通过将相应的 URL 添加到代理指令中通过 ArcGIS Web Adaptor 进行通信。
有关详细信息,请参阅使用 ArcGIS Server 配置反向代理。
实施负载均衡和反向代理的一般建议包括:
对于许多其他应用程序或系统,在负载均衡器上终止 TLS 是一种常见的应用程序架构。 对于 ArcGIS 系统,通常建议不要使用 TLS 终止,对于 Portal for ArcGIS,则不支持 TLS 终止。 维护端到端 TLS 连接可以增强安全状况,并确保网络内的攻击者看不到用户请求和数据。
使用 ArcGIS 系统实施任何负载均衡技术时,请考虑以下策略:
healthCheck 请求只有在系统正常运行并能够接收请求时,才应做出肯定响应。反向代理通常作为负载均衡器的一部分实施,因为许多负载均衡器将请求发送到与前端请求来源不同的后端端口或服务。 在实施反向代理(与负载均衡器一起或独立于负载均衡器)时,请考虑以下一些设计建议:
某些反向代理可能默认使用多个 URL 部分来引用 ArcGIS 系统,例如:
https://centralhost.domain.com/systems/gis/rest/services请注意,ArcGIS Enterprise 组件不支持使用此类多部件 URL,“Web 上下文”或 Web Adaptor 名称必须是 URL 中主机名之后的第一个 URL 组件。