Skip To Content

使用 ArcGIS Notebook Server 设置反向代理服务器

反向代理服务器是在外围网络(也称为隔离区 [DMZ] 或屏蔽子网)中部署的计算机,可处理来自 Internet 的请求并将其转发到内部网络的计算机中。 通过转发请求,反向代理服务器会为组织防火墙后面的计算机标识进行掩膜,从而保护内部计算机,使其免受 Internet 用户的直接攻击。 可以在反向代理服务器中实施其他安全功能,以进一步保护内部网络,以防外部用户访问。

您可以配置 ArcGIS Notebook Server 站点以使用组织的反向代理服务器。 此操作是可选的。 如果您的组织尚未使用反向代理服务器,或者您不想配置 ArcGIS Notebook Server 站点使用反向代理服务器,则可以使用门户配置站点

ArcGIS Notebook Server 添加至反向代理服务器

您的组织的反向代理服务器必须配置为通过向代理目录添加相应 URL 的方法与 ArcGIS Web Adaptor 进行通信。

例如,如果您正在使用 Apache 作为反向代理服务器,则需要将 ArcGIS Web Adaptor URL 添加到 Apache Web 服务器配置文件 httpd.conf 中的以下 ProxyPass 指令中:

ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook

设置 WebContextURL 属性

如果您正在使用反向代理服务器,而您站点的 URL 并非以默认字符串 /arcgis(全部小写)结尾,则还应设置 ArcGIS Notebook ServerWebContextURL 属性。 这有助于 ArcGIS Notebook Server 在发送给最终用户所有资源上构造的正确 URL。

注:

使用 WebContextURL 属性将 ArcGIS Notebook Server URL 设置为与其 ArcGIS Web Adaptor 的 URL 匹配(例如 /notebook)。

执行以下操作以更改 WebContextURL 属性:

  1. 以具有管理员权限的用户身份登录至 ArcGIS Notebook Server Administrator Directory (https://notebookserver.domain.com:11443/arcgis/admin)。
  2. 单击系统 > 属性 > 更新
  3. 属性文本框中,插入以下 JSON,将您自己的 ArcGIS Notebook Server URL 替换为所在组织防火墙以外的用户所看到的 URL。
    {
       "WebContextURL": "https://notebookserver.domain.com/notebook"
    }
  4. 单击 Update
  5. 重新启动 ArcGIS Notebook Server在 Windows 中,重新启动 ArcGIS Server Windows 服务。

反向代理标题和 ArcGIS Notebook Server

将反向代理与 ArcGIS Web Adaptor 集成时,反向代理服务器发送的标题中必须设置以下属性:

X-Forwarded-Host=<FQDN of reverse proxy server>

如果在标题中设置该属性,ArcGIS Web Adaptor 会将请求返回到与反向代理服务器的 URL 相匹配的反向代理服务器。 例如,对 ArcGIS Notebook Server 服务目录 (https://reverseproxy.domain.com/arcgis/rest/services) 的请求会以相同的 URL 返回到客户端。

如果未设置 X-Forwarded-Host 标题属性,则 ArcGIS Web Adaptor 可能会返回请求已定向的内部计算机的 URL,例如 https://notebookserver.domain.com/arcgis/rest/services,而不是 https://reverseproxy.domain.com/arcgis/rest/services。 这会带来问题,因为客户端将无法访问 URL(通常称为浏览器 404 错误)。 而且,客户端将获得有关内部计算机的一些信息。

在排除客户端与 ArcGIS Web Adaptor 之间的通信故障时,建议您在反向代理服务器中设置 X-Forwarded-Host 标题属性,因为这是导致通信失败的常见原因。 设置该标题的方式取决于您的反向代理服务器实现。 例如,Apache 会通过以下配置中的 ProxyPreserveHost On 指令完成此设置:

...
ProxyPreserveHost On
ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook
...

有关如何通过原始托管标题的指导信息,请参阅反向代理服务器的产品文档。