第四章 安装 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
服务器结合使用。