反向代理服务器是在外围网络(也称为隔离区 [DMZ] 或屏蔽子网)中部署的计算机,可处理来自 Internet 的请求并将其转发到内部网络的计算机中。以反向代理服务器的名义转发请求会为组织防火墙后面的计算机标识进行掩膜,因此保护内部计算机免受 Internet 用户的直接攻击。可在反向代理服务器中实现附加安全功能以进一步阻止外部用户访问内部网络。
如果您的反向代理服务器支持健康检查功能,您可以使用 Portal for ArcGIS 的健康检查端点来确定门户是否可以接收请求。这有助于快速确定站点中是否存在软件或硬件故障。有关详细信息,请参阅 ArcGIS REST API 中的门户健康检查主题。
将 Portal for ArcGIS 添加到反向代理服务器
将 Portal for ArcGIS 添加到组织的反向代理服务器之前,必须完成以下操作:
- 配置反向代理服务器上的 HTTPS(HTTP 和 HTTPS 或仅 HTTPS)。Portal for ArcGIS 需要 HTTPS 来进行通信。有关如何设置 HTTPS 的信息,请参阅代理服务器的产品文档。
- 如果已将 ArcGIS Server 与门户联合,则需要取消联合(移除)服务器才能继续。有关完整说明,请参阅从门户中移除 ArcGIS Server 站点。
- 如果您的门户使用的是集成的 Windows 身份验证,则根据您的门户配置 ArcGIS Web Adaptor。为此,Portal for ArcGIS 需要使用 ArcGIS Web Adaptor,这将允许反向代理服务器与您的门户进行正常通信。有关详细说明,请参阅 IIS、Java (Windows) 或 Java (Linux) 的配置主题。
移除任意联合服务器并使用 ArcGIS Web Adaptor 配置 Portal for ArcGIS 之后,可通过直接向代理服务器指令添加组件的方式将 ArcGIS Web Adaptor 与组织的反向代理服务器结合使用。例如,如果您正在使用 Apache 作为反向代理服务器,则需要将 ArcGIS Web Adaptor 添加到 Apache web 服务器配置文件 httpd.conf 的 ProxyPass 指令中:
ProxyPass /arcgis https://webadaptorhost.domain.com/webadaptorname
ProxyPassReverse /arcgis https://webadaptorhost.domain.com/webadaptorname
ProxyPass 指令必须与为 ArcGIS Web Adaptor 指定的名称(以上示例中为 /webadaptorname)相匹配。如果您站点的 URL 不是以默认字符串 /arcgis 结尾,则需要指定 ArcGIS Web Adaptor 的非默认名称(例如 /myorg)。
验证代理服务器是否支持 gzip 编码,以及是否已配置为允许 Accept-Encoding 标头。此标头允许通过 gzip 编码压缩 HTTP 1.1 响应。例如,如果允许此标头,则加载地图查看器的请求将向浏览器返回一个大小约为 1.4 MB 的压缩响应。如果不允许此标头或忽略此标头,则请求将向浏览器返回一个未经压缩的响应,其大小约为 6.8 MB。如果网络速度很慢,那么在不压缩响应的情况下加载地图查看器可能需要很长时间。强烈建议您允许此标头作为反向代理服务器配置的一部分。
设置门户的 WebContextURL 属性。这样可以帮助 Portal for ArcGIS 为发送到最终用户的所有资源构建正确的 URL。要更改 WebContextURL,请执行以下操作:
- 打开 Web 浏览器并以门户组织中默认管理员角色成员的身份登录到 ArcGIS Portal Directory。URL 地址格式为 https://portal.domain.com:7443/arcgis/portaladmin。
- 单击系统 > 属性 > 更新属性。
- 在更新系统属性对话框中,插入以下 JSON,将您自己的反向代理服务器或 DNS 别名 URL 替换为组织防火墙以外的用户所看到的 URL。
{ "WebContextURL": "https://reverseproxy.domain.com/myorg" }
- 单击更新属性。
通过门户配置反向代理服务器后,现在您将通过反向代理服务器 URL 而非 ArcGIS Web Adaptor URL 访问门户。您在门户网站或 ArcGIS Portal Directory 中访问的任何内容都将返回反向代理服务器 URL。
应使用反向代理服务器 URL 重新执行以下管理任务:
如果已将受保护的服务以项目的形式添加到门户中,您需要删除原始项目并重新添加这些项目。这是因为原始项目使用的是 ArcGIS Web Adaptor URL,而非反向代理服务器 URL。有关说明,请参阅连接到安全服务。