第二十三章 Web 网关的配置基础知识
配置 Web
服务器以与 Web
网关配合使用后,请根据需要配置 Web
网关。可以使用管理页面来配置默认参数、单个服务器和 Web
应用程序。
此页面提供有关一些常见配置主题的附加信息。
Web 网关配置和日志文件
Web Gateway
创建并使用配置文件和日志文件,分别命名为 CSP.ini
和 CSP.log
。为了方便起见,管理页面指示了这些文件的位置。
提示:很少需要直接编辑配置文件,因为通常通过管理页面进行配置。如有必要,文档会描述配置中的指令。如果需要直接编辑配置文件,请参阅卡中 %CSP.Mgr.GatewayMgr
的类引用。方法 SetApplicationParams
、SetDefaultParms
和 SetServerParams
提供参数的简短描述。
自动路由到IRIS
的文件类型
InterSystems
文件类型在IRIS
中处理(特别是由 CSP
引擎)。所有其他文件(静态文件)可由 Web
服务器或 CSP
引擎提供服务。 CSP
引擎可以为放置在 Web
应用程序路径中的任何类型的文件(包括静态文件)提供服务。设置 CSP
引擎来提供静态文件可以简化 Web
应用程序的 Web
服务器配置,因为您无需在 Web
服务器配置中创建别名来表示应用程序静态文件的保存位置。设置 CSP
引擎来提供静态文件可以解决当单个(即通用)Web
服务器提供两个不同版本的 IRIS
服务时的争用问题,每个版本都需要不同版本的某些静态文件(例如,超级事件代理组件)。
要让 CSP
引擎为特定 Web
应用程序提供静态文件,请将静态文件放置在 Web 应用程序的文件系统中相对于构成应用程序的 CSP
文件的正确位置(而不是放置在 Web
服务器自己的文档文件系统中)。
注意:要运行基于 Zen
的应用程序,必须启用“服务文件”选项并正确配置 Web
服务器。
从 IRIS
提供静态文件
可以配置 Web
服务器和 Web
网关安装,以便 IRIS
承担提供静态文件的责任。管理门户针对 IRIS
配置为为应用程序中的所有组件提供服务。但是,仍然可以配置 Web
服务器,使其保留提供静态文件的责任。
IRIS
数据库服务器为所有 CSP
提供服务。它还可以通过 Web
网关为 Web
应用程序提供任何类型的静态文件。在标准 Web
应用程序中,Web
服务器(不是数据库服务器)通常提供静态内容。
表示字符编码
CSP
引擎通过流服务器,以与主要 Web
服务器一致的方式处理静态文件,以确定 JavaScript
文件的字符编码。现代约定是将所有 JavaScript
文件标记为 application/javascript
的 Content-Type
,并且您确保页面上使用的所有 JavaScript
文件都是这种情况。
JavaScript
文件以这种方式标记:
- 如果文件包含
BOM
(字节顺序标记),浏览器会自动检测到它并使用正确的字符集来读取它。 - 如果文件不包含
BOM
,则浏览器假定该文件是UTF-8
。
如果需要覆盖此行为以指定 JavaScript
文件的字符集,请将Global
^%SYS("CSP","MimeFileClassify","JS")
设置为列表值 $listbuild(contenttype, binary, charset)
。例如,
SET ^%SYS("CSP", "MimeFileClassify", "JS") = $listbuild("text/javascript", 0 ,"ISO-8859-1")
这将设置较旧的内容类型并使用 ISO-8859-1
字符集。此外,如果 Caché
转换表定义为空字符串以外的其他内容,或者Global节点 ^%SYS("CSP","DefaultFileCharset")
设置为空值,Caché
将为所有 JavaScript
使用此字符集和其他文本文件。默认情况下,这两个Global
节点均未设置。
启用服务文件选项
Web
应用程序的“服务文件”选项具有以下值:
-
Always
— 服务文件已打开。 -
No
— 服务文件已关闭。 -
Always and cached
—Web Gateway
可以缓存Web
服务器上的静态文件。此设置提高了效率,因为系统可以提供缓存的静态页面,而无需返回IRIS
服务器。 -
Use InterSystems Security
— 如果用户具有访问IRIS
实例作为Web
应用程序一部分的动态.csp
或.cls
页面的适当授权,则该实例的CSP
引擎将在该Web
应用程序位置处理对静态文件的请求。如果用户没有适当的授权,则CSP
服务器将返回HTTP 404
响应。
配置 Web
服务器以允许 IRIS
提供静态文件
默认情况下,InterSystems
提供的安装脚本不会查找或配置外部 Web
服务器。如果运行自定义安装,则可以选择配置任何先前安装的 IIS
或 Apache Web
服务器的选项,以启用对 CSP
引擎的支持。安装脚本创建 /csp
虚拟目录并创建由 Web Gateway
处理的 InterSystems
文件类型的映射。这足以让 CSP
引擎通过该 Web
服务器正常运行。它不启用对服务文件功能的支持。您必须手动配置 Web
服务器以映射要通过 Web
网关处理的特定文件扩展名。这是设计使然,因为通过这种机制开放数据库服务器会带来安全风险,不应该在无形中进行。
有关 Web
服务器的说明,请参阅映射其他文件类型。
从 Web
服务器提供静态文件
可以使用从 Web
服务器提供静态页面的传统配置。在这种情况下,静态文件选项的设置无关紧要。当公共 Web
服务器为两个不同版本的 InterSystems IRIS
提供服务(每个版本需要不同版本的某些静态文件(例如超级事件代理组件))时,这可以消除争用。
如果已将 Web
服务器本身配置为提供静态文件,请确保每个 Web
服务器上都存在静态内容。
在高可用性解决方案的硬件负载均衡器上启用粘性会话
对于通过 CSP
运行的高可用性解决方案 建议使用硬件负载平衡器进行负载平衡和故障转移。 要求在负载均衡器中启用粘性会话支持;这保证了——一旦在给定的 Web
网关实例和给定的应用程序服务器之间建立了会话——来自该用户的所有后续请求都在同一对上运行。此配置可确保会话 ID
和服务器端会话上下文始终保持同步;否则,可能会在一台服务器上创建会话,但来自该用户的下一个请求在不存在该会话的不同系统上运行,这会导致运行时错误(尤其是超级事件,需要会话密钥来解密该会话)要求)。有关如何启用粘性会话支持的说明,请参阅负载均衡器文档。
注意:可以将系统配置为在没有粘性会话的情况下工作,但这需要将 Web
会话Global
映射到企业中的所有系统上,并且可能会导致严重的锁争用,因此不建议这样做。
启用脚本以重新激活 Web
网关配置
可以启用 IRIS
外部的脚本来重新激活 Web Gateway
的配置。
脚本应将以下行(区分大小写)添加到 Web
网关配置文件的 SYSTEM
部分:
[SYSTEM]
RELOAD=1
Web Gateway
看门人守护程序大约每分钟检查一次 RELOAD
标志,如果设置正确,则重新加载并重新激活其配置并从文件中删除该标志。成功重新加载操作后,以下消息将写入 Web Gateway
事件日志:
Gateway Management
Gateway Configuration Reloaded and Reactivated
混合多进程/多线程Web服务器架构
Web Gateway
包含对混合多进程/多线程 Web
服务器架构的增强支持。 UNIX®
下的 Apache
版本 2.4
是根据此架构实现的 Web
服务器的一个示例。
核心 Web Gateway
资源保存在共享内存区域中。所有Web
服务器工作进程都有一个共同的运行配置、连接表和表单缓存。 Web Gatewa
y 系统状态表单显示整个 Web
服务器安装的状态,而不仅仅是单个工作进程的状态。状态表单的连接表包括一个额外的列,其中包含与 IRIS
的每个连接相关的 Web
服务器进程 ID
。
最后,多进程架构支持状态感知会话。尽管连接池(到 IRIS
)分布在多个 Web
服务器进程中,但 Web
网关使用进程间通信 (IPC
) 协议将状态感知会话的请求路由到 Web
服务器环境中的正确托管进程。