[toc]
第三章 Web 网关支持的配置
本页概述了 Web
网关支持的配置,该网关负责 Web
服务器和 IRIS
之间的通信 — 特别是与 Web
应用程序和管理门户之间的通信。
注意 IRIS
提供专用 Web
服务器(Apache
的最小版本),其唯一目的是运行管理门户。对于任何生产系统,必须安装和配置受支持的 Web
服务器之一,其中任何一个都更安全、更健壮。
支持的配置
在开发过程中,Web
服务器、Web
网关和 IRIS
实例可能位于一台计算机上。在大规模部署中,可能有多个 Web
服务器和多个 IRIS
实例,全部位于不同的计算机上。每个 Web
服务器都需要一个专用的 Web
网关。单个 Web
网关可以与多个 IRIS
实例进行通信。
IRIS
网关注册表使能够监控和管理连接。所有 Web
服务器安装和 Web Gateway
安装在连接时都会向 IRIS
注册。注册表包含允许 IRIS
代码与连接的 Web Gateway
安装进行交互的基础结构,以便读取和写入配置以及监视系统状态和 Web Gatewa
事件日志。
支持的Web
服务器
可以在生产环境中将以下 Web
服务器与 Web Gateway
结合使用:
- 微软
Windows
:- 微软
IIS
。连接选项包括默认的IIS
选项以及IIS 7
或更高版本的多个替代选项。 - 阿帕奇。连接选项包括默认的
Apache
选项和Windows Apache
的几个替代选项。 Nginx
- 微软
-
Linux、UNIX?
和macOS
:- 阿帕奇。有多种连接选项可供选择:默认的
Apache
选项、NSD
、锁定的Apache Web
服务器以及其他几种非典型的Apache
配置。 Nginx
- 阿帕奇。有多种连接选项可供选择:默认的
注意:此列表不包括专用 Web
服务器,该服务器不适用于生产系统。
Web Gateway
为 Microsoft
、Apache
和 Nginx Web
服务器提供高性能连接解决方案。除了这些解决方案之外,所有受支持的操作系统都可以通过 CGI
连接到 IRIS
。
Microsoft Web
服务器支持多线程 API
,允许以动态绑定库的形式对 Web
服务器的核心功能进行扩展。当前版本的 Web
网关充分利用这些 API
,以便为 IRIS
系统带来高性能的 Web
连接。 Windows
版本的 Apache
也以专门的多线程模式运行,因此也可以利用作为动态绑定库实现的 Web Gateway
。
Apache
的 UNIX?
版本在架构上与基于 Microsoft Windows
的 Web
服务器不同,因为它们并非完全是多线程的。 Apache 2.4
版是使用由线程和多个进程组成的混合模型来实现的。在此模型中,每个 UNIX?
进程本身就是一个有效的多线程服务器。
Apache Web
服务器除了支持作为 CGI
模块实现的扩展之外,还发布专有的 API
。可以通过用户定义的模块(编译的 C
程序)向 Apache
添加额外的功能。事实上,Apache
的很大一部分核心功能都是作为一组模块实现的。可以通过两种方法之一将模块添加到 Apache
。首先,模块的源代码可以直接编译到 Apache
核心中。此选项可以说提供了最佳性能,但不幸的是,涉及重新配置和重建 Web
服务器。作为直接将模块源构建到 Apache
核心的替代方案,Apache 1.3
版及以后版本支持作为动态链接库实现的扩展。该工具允许利用 Apache
模块的高性能,而无需将模块物理构建到 Apache
的核心中。 CSP
模块作为 Windows
动态链接库 (DLL
) 和 UNIX?
动态共享对象 (DSO
) 进行分发。 UNIX?
共享对象在概念上类似于 Windows
动态链接库 (DLL
),并在运行时链接。在现代操作系统上,运行时链接到库所涉及的开销非常低。
与其他 Web
服务器不同,Nginx
基于异步事件驱动架构。在事件驱动架构中,通知或信号用于标记每个单独操作的启动和完成。这种设计的结果是,在处理 Web
请求时,可以暂时释放资源并供其他操作使用。资源可以动态分配和释放,并且仅在实际需要时与 Web
请求的处理相关联。这可以实现内存和 CPU
的高度优化使用。该体系结构的异步特性导致线程同时执行而不会相互阻塞,从而进一步增强了资源共享,否则这些资源可能与等待阻塞操作的线程相关联。 Nginx
提供了一个 API
,允许将扩展(例如 CSP
)添加到其核心功能中。然而,与其他Web
服务器不同的是,扩展模块必须在编译时内置到Web
服务器核心中。 Nginx
不支持动态加载扩展模块。
还提供了一种替代架构,其中 Web
网关的功能作为独立的可执行文件实现,在其自己的进程中运行,并且不直接连接到 Web
服务器。此版本的 Web Gateway
称为 NSD
。在此背景下,NSD
负责提供 Web
网关的核心功能并维护与 InterSystems IRIS
的持久连接。 Web
服务器通过小模块与 NSD
进行通信,这些模块有两种类型:适用于托管 Web
服务器的专有 API
的模块和作为 CGI
可执行文件实现的模块。因此,在需要通过 CGI
标准扩展 Web
服务器的情况下,或者在需要将 Web
网关的功能与托管 Web
服务器的功能分离的情况下,可以使用基于 NSD
的体系结构。