防火墙和 ArcGIS Server
防火墙有何功能?
每个计算机都有数千个端口,其他计算机可通过这些端口向其发送信息。防火墙是一种安全机制,用于限制其他计算机与您的计算机进行通信时所能使用的端口数。当使用防火墙将通信限制为仅可通过少量端口进行传输时,您就可对这些端口进行严密监控从而防止遭到外来攻击。此外,也可以将防火墙配置为只能通过您所知道的端口进行通信。
可通过硬件、软件或者硬件和软件相结合的方式实现防火墙的功能。防火墙最适合检测那些通过开放端口进出系统的恶意攻击,如蠕虫和一些特洛伊木马。不过,它无法阻挡附加在电子邮件中的病毒或网络内部的威胁。因此,尽管防火墙非常重要,但也不应成为整个安全策略的唯一组成部分。除防火墙外,还应一同部署其他安全策略,如防病毒软件、安全可靠的身份验证和授权技术等等。
使用防火墙保护 ArcGIS Server
您可采取多种策略以使用防火墙保护 ArcGIS Server 站点。以下策略使用防火墙将内部网络(安全性受到监管)与外部网络(安全性得不到保障)隔开。
单防火墙
两种方法中更简单、安全性也较低的一种方法是使用单个防火墙限制 Web 服务器流量。通常,只开放 80 端口。Web 服务器、ArcGIS Web Adaptor、GIS 服务器和数据都位于防火墙后的内部安全网络中。
![]() |
在单防火墙方案中,防火墙位于外部网络与 Web 服务器之间。 |
外围网络中具有反向代理和 Web Adaptor 的多防火墙
更安全、但也更复杂的方法是在外围网络(也称为隔离区 [DMZ] 或屏蔽子网)中配置 Web 服务器和 Web Adaptor。在此方案中,Web Adaptor 通过端口 80 接收传入的请求。然后使用端口 6080 通过另一个防火墙将请求发送到 GIS 服务器。Web Adaptor 使计算机可以像反向代理一样工作。
![]() |
在多防火墙方案中,会在反向代理的两端各放置一个防火墙。 |
以下详细介绍了此方案中的各个组成部分:
- 外围网络包括 Internet 用户可通过防火墙访问但不属于内部安全网络的计算机。外围网络会阻止 Internet 客户端直接访问内部网络。
- 位于外围网络中的 Web Adaptor 通过公用端口(如 80 端口)接收 Internet 请求。防火墙用于防止通过任何其他端口进行的访问。然后,Web Adaptor 通过另一个防火墙使用 ArcGIS Server 的 6080 端口将请求发送到内部安全网络。
- GIS 服务器和数据服务器(如果存在)位于内部安全网络中。进入安全网络的请求必须来自 Web Adaptor 并通过防火墙。离开安全网络的响应返回到客户端的方式与请求到达的方式相同。响应首先通过防火墙返回到 Web Adaptor。然后,Web Adaptor 通过另一个防火墙将响应发送到客户端。
如果外围网络中的计算机遭到攻击,第二个防火墙会降低受影响计算机对内部计算机网络进行攻击的概率。
集成现有反向代理
如果您的组织已经使用反向代理,则可以将其配置为在内部安全网络中向 ArcGIS Server 发送请求的路径。最基本的选择是不安装 Web Adaptor,通过端口 6080 直接连接到 GIS 服务器。

如果您希望反向代理和内部安全网络间的端口保持未知,可以将 Web Adaptor 安装在内部安全网络中的其他 Web 服务器上。此 Web Adaptor 可以配置为通过您所选择的端口接受流量。

您可以直接将 ArcGIS Server 站点添加到代理指令。例如,如果您正在使用 Apache 作为反向代理,则需要将 ArcGIS Server 站点添加到 Apache Web 服务器配置文件 httpd.conf 中的以下 ProxyPass 指令中:
ProxyPass /arcgis http://gisserver.domain.com:6080/arcgis
ProxyPassReverse /arcgis http://gisserver.domain.com:6080/arcgis

如果您正在使用反向代理,而您站点的 URL 并非以默认字符串 /arcgis(全部小写)结尾,则还应设置 ArcGIS Server 的 WebContextURL 属性。这样可以帮助 ArcGIS Server 为发送到最终用户的所有资源构建正确的 URL。要更改 WebContextURL,请执行以下操作:
以具有管理员权限的用户身份登录到位于 http://gisserver.domain.com:6080/arcgis/admin 的 ArcGIS Server 管理员目录。
单击系统 > 属性 > 更新。
在属性文本框中,插入以下 JSON,将您自己的 ArcGIS Server URL 替换为所在组织防火墙以外的用户所看到的 URL。
{ "WebContextURL": "http://gisserver.domain.com/mygis" }
- 单击更新。
在站点中的每个 GIS 服务器上重新启动 ArcGIS Server。在 Windows 中,这可以通过重新启动每台计算机上的 ArcGIS Server Windows 服务来实现。
GIS 服务器计算机之间的防火墙
通常不需要在 GIS 服务器计算机之间放置防火墙。但如果计算机之间存有防火墙,则应开启 ArcGIS Server 所用端口中列出的端口。