<-
Apache HTTP 服务器 2.4 > 多处理模块(MPM)

多处理模块(MPM)

本文档描述了什么是多处理模块以及Apache HTTP Server如何使用它们。

支持Apache!

也可以看看

最佳

介绍

Apache HTTP Server被设计为功能强大且灵活的Web服务器,可以在各种不同环境中的多种平台上工作。不同的平台和环境通常需要不同的功能,或者可能具有不同的方式来最有效地实现相同的功能。Apache httpd通过其模块化设计一直适应各种环境。通过这种设计,网站管理员可以通过选择在编译时或运行时加载哪些模块来选择服务器中将包含哪些功能。

Apache HTTP Server 2.0将此模块化设计扩展到Web服务器的最基本功能。该服务器随附了多种选择的多处理模块(MPM),这些模块负责绑定到计算机上的网络端口,接受请求并调度子代来处理请求。

将模块化设计扩展到服务器的这一级别有两个重要的好处:

在用户级别,MPM看起来很像其他Apache httpd模块。主要区别在于,必须随时将一个MPM加载到服务器中。可用的MPM列表显示在模块索引页面上

最佳

MPM默认值

下表列出了各种操作系统的默认MPM。如果您在编译时没有其他选择,则将选择该MPM。

网络软件mpm_netware
OS / 2mpmt_os2
Unix系统preforkworkerevent,取决于平台功能
视窗mpm_winnt

在这里,“ Unix”用于表示类似Unix的操作系统,例如Linux,BSD,Solaris,Mac OS X等。

对于Unix,关于安装哪个MPM的决定基于两个问题:

1.系统是否支持线程?

2.系统是否支持线程安全轮询(特别是kqueue和epoll函数)?

如果两个问题的答案均​​为“是”,则默认MPM为 event

如果#1的答案为“是”,而#2的答案为“否”,则默认值为worker

如果两个问题的答案均​​为“否”,则默认MPM为 prefork

实际上,这意味着默认值几乎始终为 event,因为所有现代操作系统都支持这两个功能。

最佳

将MPM构建为静态模块

MPM可以在所有平台上构建为静态模块。在构建时选择一个MPM并将其链接到服务器。必须重新构建服务器才能更改MPM。

要覆盖默认的MPM选项,请使用 脚本选项 。NAME是所需的MPM的名称。--with-mpm=NAMEconfigure

编译服务器后,可以使用确定选择哪个MPM ./httpd -l。该命令将列出编译到服务器中的每个模块,包括MPM。

最佳

将MPM构建为DSO模块

在Unix和类似平台上,MPM可以作为DSO模块构建并以与其他DSO模块相同的方式动态加载到服务器中。将MPM构建为DSO模块允许通过更新LoadModuleMPM 的指令而不是通过重建服务器来更改MPM。

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

尝试LoadModule 超过一个MPM将导致启动失败,并显示以下错误。

AH00534: httpd: Configuration error: More than one MPM loaded.

使用 脚本--enable-mpms-shared选项启用此功能 configure。使用参数all,将安装该平台的所有可能的MPM。或者,可以将MPM列表指定为参数。

自动选择的默认MPM或使用 脚本--with-mpm选项指定的默认MPM configure将加载到生成的服务器配置文件中。编辑 LoadModule指令以选择其他MPM。

可用语言: de  |  zh  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。