F.2. 切换 MPM
服务器根据 Apache HTTP 服务器主机上的 00-mpm.conf 文件中的 LoadModule 指令选择 MPM。您可以通过从 00-mpm.conf 文件中的 MPM 的 LoadModule 指令中删除注释字符(#)来选择特定的 MPM。
根据您使用的 Apache HTTP 服务器分发,00- mpm.conf 文件的位置会有所不同:
-
如果您使用 JBCS Apache HTTP 服务器,00-
mpm.conf 文件位于JBCS_HOME/httpd/conf.modules.d目录中。 -
如果您使用 RHEL Apache HTTP 服务器,00-
mpm.conf 文件位于/etc/httpd/conf.modules.d目录中。
根据您使用的操作系统版本,请考虑以下指南:
在 RHEL 版本 8 和 9 中,默认选择
事件MPM。例如:# event MPM: A variant of the worker MPM with the goal of consuming # threads only for connections with active processing # See: http://httpd.apache.org/docs/2.4/mod/event.html # LoadModule mpm_event_module modules/mod_mpm_event.so事件MPM 是多线程的,旨在提供优化的性能。如果您使用 RHEL 版本 8 或 9,切换到另一个 MPM,如prefork可能会导致性能问题。在 RHEL 7 中,默认选择
preforkMPM。例如:# prefork MPM: Implements a non-threaded, pre-forking web server # See: http://httpd.apache.org/docs/2.4/mod/prefork.html LoadModule mpm_prefork_module modules/mod_mpm_prefork.so如果您使用 RHEL 7,请考虑切换到另一个 MPM,如
worker或event,以避免可能出现性能问题。
为了说明目的,以下步骤描述了如何从 prefork MPM 切换到 worker MPM。
流程
进入包含
00-mpm.conf文件的目录:-
如果您使用 JBCS Apache HTTP 服务器,请转到
JBCS_HOME/httpd/conf.modules.d目录。 -
如果您使用 RHEL Apache HTTP 服务器,请转到
/etc/httpd/conf.modules.d目录。
-
如果您使用 JBCS Apache HTTP 服务器,请转到
编辑
00-mpm.conf,将注释(#)字符添加到preforkMPM 的LoadModule指令中。例如:
# prefork MPM: Implements a non-threaded, pre-forking web server # See: http://httpd.apache.org/docs/2.4/mod/prefork.html #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so在同一个
00-mpm.conf文件中,从您要切换到的 MPM 的LoadModule指令中删除注释(#)字符。这些行位于preforkMPM 的下方。例如,要加载
workerMPM,请从workerMPM 的LoadModule指令中删除注释(#)字符:# worker MPM: Multi-Processing Module implementing a hybrid # multi-threaded multi-process web server # See: http://httpd.apache.org/docs/2.4/mod/worker.html LoadModule mpm_worker_module modules/mod_mpm_worker.so
验证
要验证 MPM 是否已正确配置,请输入以下命令:
$ sbin/apachectl -V前面的命令显示当前 MPM。
例如:
Server MPM: worker