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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 事件
MPM 是多线程的,旨在提供优化的性能。如果您使用 RHEL 版本 8 或 9,切换到另一个 MPM,如prefork
可能会导致性能问题。在 RHEL 7 中,默认选择
prefork
MPM。例如:prefork MPM: Implements a non-threaded, pre-forking web server See: http://httpd.apache.org/docs/2.4/mod/prefork.html
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用 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
,将注释(#
)字符添加到prefork
MPM 的LoadModule
指令中。例如:
prefork MPM: Implements a non-threaded, pre-forking web server See: http://httpd.apache.org/docs/2.4/mod/prefork.html
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在同一个
00-mpm.conf
文件中,从您要切换到的 MPM 的LoadModule
指令中删除注释(#
)字符。这些行位于prefork
MPM 的下方。例如,要加载
worker
MPM,请从worker
MPM 的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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证 MPM 是否已正确配置,请输入以下命令:
sbin/apachectl -V
$ sbin/apachectl -V
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令显示当前 MPM。
例如:
Server MPM: worker
Server MPM: worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow