第四章 安装 Web 网关
默认 Web 网关安装和配置
当安装 IRIS 并选择安装类型(在开发、服务器、自定义(选择 Web 服务器网关组件)或 Web 服务器(仅限 Windows 平台)时,安装程序将配置现有的生产 Web 服务器(如果默认设置为类型:Windows 上的 IIS 和 Linux/UNIX®/macOS 上的 Apache),然后安装 Web Gateway。如果这适合使用案例,安装 Web 服务器,然后安装 IRIS 可为 IRIS 实例提供有效的 Web 网关配置,而无需任何调整。
但是,如果使用不同的 Web 服务器和平台组合、具有非典型的 Web 服务器架构,或者是想要自定义环境的高级用户,请务必查看本文档,其中提供了配置 Web 服务器和Web Gateway 连接到 IRIS 并使用 Web Gateway 提供的服务。
除了 InterSystems 文件类型(.csp、.cls、.zen 和 .cxw)之外,托管管理门户的 Web 服务器还必须通过 Web 网关路由以下其他文件类型的请求:.jpg、.gif、 .png、.svg、.css 和 .js。请参阅配置 Apache 以将其他文件类型传递给 CSP(对于 Apache)或将 NSD 与 Nginx 结合使用(对于 Nginx)。
Web 网关管理模块
直接与托管 Web 服务器的 API 配合使用的 Web 网关架构通常由两个模块组成(其文件名因操作系统而异):
- 管理模块(例如,
CSPmsSys.dll),提供Web Gateway管理页面。 - 运行时模块(例如,
CSPms.dll),负责处理CSP文件的请求以及加载管理请求并将其路由到管理模块。
这些文件必须位于同一目录中。
Web Gateway 组件和物理安装路径
本指南的后续部分介绍了如何使用所有受支持的 Web 服务器配置 Web Gateway 组件。此外,安装程序还为专用 Web 服务器和同一主机上可能存在的任何第三方 Web 服务器创建并维护单独的 Web 网关安装。在此上下文中,第三方 Web 服务器是指不属于安装的软件一部分的 Web 服务器。
Web Gateway 组件的精确安装位置并不特别重要,前提是:
- 物理安装路径在适当的情况下与托管
Web服务器配置中给出的路径相匹配。 - 与各个组件所需的访问权限相关的安全设置会进行适当调整。这对于由
Web服务器直接访问的Web Gateway组件尤其重要,因为Web服务器通常被锁定到它们能够访问的文件(以及可以运行的可执行文件)受到仔细控制的程度。应该记住,对于由本身绑定到Web服务器核心可执行文件的Web Gateway二进制文件访问的任何Web Gateway配置(和日志)文件,安全注意事项也很重要。 - 尊重托管
Web服务器的安全策略。某些Web服务器(尤其是那些随Secure Linux (SELinux)一起提供的Web服务器)被配置为无法访问位于其自身文件系统之外的文件。此限制会影响某些面向Web服务器的Web Gateway组件的安装位置。
有四种类型的 Web Gateway 组件需要考虑。
- 由
Web服务器加载的二进制文件(基于 API 的扩展)。
这包括 Windows DLL 和 UNIX® 共享对象:
CSPms[Sys].dll
CSPn3[Sys].(dll|so|exe)
CSPa*[Sys].(dll|so)
CSPx[Sys].(dll|so)
mod_csp*.(dll|so)
安装它们的物理位置应与托管 Web 服务器配置中的相应配置指令相匹配。这包括指示应加载哪些第三方模块的指令。 Web 服务器需要读取和加载这些模块的权限。名为 CSP* 的模块需要读取和写入 Web Gateway 配置和日志文件的权限。它们通常在与 Web Gateway 二进制文件相同的位置创建。
在考虑对这些模块的访问控制时,请记住,Web 服务器工作进程需要能够访问这些模块以及任何相关配置和日志文件。例如,对于 Apache,服务器通常以超级用户权限启动,但实际为 Web 请求提供服务的工作进程以低得多的权限级别运行(如 Apache 配置文件中的User 和 Group 指令所示)。应向为工作进程指定的用户和组授予加载 Web Gateway 模块的权限以及(如果适用)读取和写入配置和日志文件的能力。
- 由
Web服务器调用的可执行文件(通用网关接口 (CGI) 模块)。并非所有配置都需要这些可执行文件。
[nph-]CSPcgi[Sys][.exe]
安装它们的物理位置应与托管 Web 服务器配置中的相应配置指令相匹配。这包括指示这些 CGI 模块应处理哪些 Web 请求的指令。
托管 Web 服务器的工作进程需要这些模块的执行权限。没有进一步的依赖关系。
Web服务器返回的静态文件。
注意:使用当前的 Web 网关配置,CSP 通常配置为直接从 IRIS 提供静态文件,而不是让 Web 服务器返回它们。本页不适用于此类配置。
JavaScript 模块(例如 CSPBroker.js、CSPxmlhttp.js 等)
Java 小程序(例如 CSPBroker.class、CSPBroker.jar 等)
Images图像(例如created-with-csp.gif等)
托管 Web 服务器的工作进程需要这些文件的读取权限。
CSP网络服务守护进程 (NSD)。
注意:并非所有配置都需要此功能。
CSPnsd[Sv][.exe]
NSD可以安装在任何地方,并且 Web 服务器不需要知道其物理位置,因为这两点之间的通信是通过 TCP(通常是端口 7038)进行的。
NSD 需要读取和写入 Web Gateway 配置和日志文件的权限,这些文件通常在同一位置创建。
注意:出于安全原因,请勿将此模块安装在 Web 服务器可访问的位置。此模块不应与步骤 1、2 或 3 中列出的模块共享位置。本文档中描述的许多Web 服务器配置明确将此模块从 Web 服务器可访问的可访问文件列表中排除。然而,将 NSD 物理安装在文件系统的其他位置要安全得多。
Web Gateway缓存,保存在持久存储中。
如果可能,Web 网关会在永久存储中定位大文件(例如大型 JavaScript 文件)的内容以及随附的 HTTP 响应标头。基本的控制信息(过期时间等)和所有缓存文件的索引都在共享内存扇区中。在这种架构中,每个缓存条目消耗少量的缓存空间(就内存使用而言)——每个条目很可能不超过一个缓存块。
缓存内容存储在 Web Gateway 临时目录中的 .dat 类型文件中,由安装脚本直接放置在 Web Gateway 安装目录下。例如,在典型的 IIS 安装中,该位置位于:C:\Inetpub\CSPGateway\temp。该位置需要托管 Web 服务器工作进程的完整读/写/删除权限。
将 Web 网关部署为独立组件
在某些情况下,例如当想要在托管 Web 服务器的系统上找到 Web 网关以供一个或多个远程 IRIS 实例使用时,可以通过以下方式将 Web 网关部署为独立组件:
-
如安装指南的准备安装
IRIS章节中的安装类型所述,可以使用 IRIS 安装程序单独安装Web Gateway,方法是在Microsoft Windows系统上选择 Web 服务器安装程序,或选择在任何平台上进行自定义设置,包括 Web 服务器网关组件。 -
还可以使用独立安装程序独立安装
Web Gateway。要获取安装程序,请使用以下WRC下载页面:https://wrc.intersystems.com/wrc/coDistGen.csp。要仅显示Web Gateway套件,请在“名称”列中键入web gateway。与
IRIS安装程序一样,Web Gateway独立安装程序作为可执行文件提供,UNIX®独立安装程序作为命令行脚本提供。Windows独立安装程序的默认值假定您使用的是IIS Web服务器,UNIX®独立安装程序的默认值假定您使用的是Apache Web服务器。如果有非典型的Web服务器架构,或者想要自定义环境,应该仔细阅读本文档以了解配置选项。 -
InterSystems提供的webgateway容器映像包括Web Gateway和Apache或Nginx Web服务器,从而为基于IRIS的应用程序提供容器化Web服务器。有关从webgateway映像部署Web Gateway容器的更多信息,请参阅在容器中运行 产品中的使用 Web Gateway Containe、角色WS:Web Server在InterSystems Cloud Manager指南中的新选项卡中打开以及webgateway:在使用InterSystems Kubernetes Operator中定义Web服务器节点。
请注意,需要为每个 Web 服务器单独安装 Web Gateway。有关配置远程 Web 服务器的详细信息,请参阅将 Web 应用程序与远程 Web 服务器结合使用。