第七十六章 Apache 注意事项 (UNIX® Linux macOS)
本页包含有关 UNIX®
、Linux
和 macOS
的推荐选项(推荐选项:NSAPI
模块 (CSPn3.so
))和非典型选项 1
(替代选项 1
:带有 NSD
的 Apache API
模块 (mod_csp24.so
))的信息。
Apache
流程管理和容量规划
Apache
为 UNIX®
操作系统提供了三个进程管理模块。在此架构中 Web Gateway
模块直接绑定到 Apache
工作进程。因此,Apache
管理其进程池的配置方式对 Web Gateway
有直接影响。
Apache
将其每个进程管理模型实现为多处理模块 (MPM
)。
Prefork MPM
是传统的多进程 (UNIX®
) 服务器架构。它不使用线程,因此不要求第三方 API
模块 (DSO
) 应该是线程安全的。参考:http://httpd.apache.org/docs/current/mod/prefork.html
。
Worker MPM
是较新的混合多线程/多进程服务器架构。它确实使用线程,并且使用的所有第三方 API
模块 (DSO
) 都应该是线程安全的。参考:http://httpd.apache.org/docs/current/mod/worker.html
。
Event MPM
旨在通过将一些处理工作传递给侦听器线程来允许同时处理更多请求,从而释放工作线程来处理新请求。参考:http://httpd.apache.org/docs/current/mod/event.html
。
为了确定现有安装使用的是哪种服务器型号,请直接调用 Apache
可执行文件,但限定如下:
httpd -V
提供了另外两个相关列表:
-
httpd –l
列出服务器内置的所有模块 -
httpd –L
列出所有模块和相关配置指令
Web Gateway DSO
是线程安全的,可以部署在任何服务器模型中。可以在此处找到 Apache
调整的有用指南:http://httpd.apache.org/docs/current/misc/perf-tuning.html
。
安全
所有三种服务器体系结构的父进程通常从分配了超级用户权限的帐户(UNIX®
下的 root
)启动,以便绑定到 TCP
端口 80
。Apache
启动的子进程作为权限较低的用户运行。用户和组指令(在 Apache
配置中)用于设置 Apache
子进程的权限。子进程必须能够读取它们负责提供的所有内容(并对 Web Gateway
的配置和事件日志文件具有读/写访问权限),但除此之外,还应授予尽可能少的权限。请参阅 Apache
文档以获取更多信息。
Apache MPM
和 Web Gateway DSO
Web Gateway
动态链接模块 (DSO
) 是线程安全的,可以部署在任何服务器模型中。
对于所有多处理模块 (MPM
),StartServers
指令指定要启动的子(工作)进程的数量。该指令还指示可以存在的 Web Gateway DSO
实例的数量,例如每个 Apache
子进程一个。
所有 MPM
都涉及将负载分散到多个子(工作)进程上。
尽管每个 Gateway
实例都是由每个 Apache
子进程独立加载的,但运行配置、连接表和表单缓存都保存在共享内存扇区中。 Web Gateway
系统状态表单的内容在每次刷新时保持不变(当然,由于活动更新而发生的更改除外)。显示的连接表(和连接号)对于整个 Apache
实例是通用的,因此,还包括一个附加列,该列指示与每个 IRIS
连接关联的 Web
服务器进程 ID
。
最大服务器连接数
虽然 Web Gateway
负载分布在多个 Web
服务器进程上,但“最大服务器连接数”配置参数对 Web Gateway
可以与特定 InterSystems IRIS
服务器建立的连接数设置单一总体限制。这意味着托管 Web
服务器启动的工作进程数不会影响 Web Gateway
可以创建的最大连接数。最大值也不受建立连接的进程类型和使用的 MPM
的影响。 (此模型代表了对以前版本的更改,其中“最大服务器连接数”参数基于每个进程进行影响,并充当受多个因素影响的一般限制。)
对于大多数 Apache
工作负载由 文件类型组成的安装,最好不要为 Web Gateway
的最大服务器连接指令分配值,并控制可以完成的并发工作量(并且隐含地控制可完成的并发工作量)。连接到 IRIS
)以及相应的 Apache
配置参数。然而,在 文件类型仅代表整个 Apache
安装的部分工作负载的安装中,为 Web Gateway
的最大服务器连接指令设置独立值是有意义的。