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