Chr*_*son 61
Series8217和Andol给出的答案都是错误的。
问题是,如何判断 Apache 是在运行prefork 还是 worker。其他答案给出的建议仅说明默认MPM 是什么(基于编译模块),而不是当前是否正在使用该默认值或其他选择。
如果httpd -V显示 prefork,则仅表示 prefork 是已编译的默认 MPM。这可以通过更改 Apache 配置文件设置来覆盖,如以下过程所示:
/etc/sysconfig/httpd在 CentOS / RedHat 上)HTTPD=/usr/sbin/httpd.worker可以使用以下过程显示实际运行的 MPM:
curl localhost/server-infohttpd -V再次运行——它仍然会显示 prefork,而不是 worker底线:
httpd -V 显示默认选项,而不是实际使用的选项许多网站上都有答案说,httpd -V用来判断 Apache 是运行 prefork 还是 worker。他们都错了。试试上面的过程,自己看看。
Jor*_*eFG 55
在 Ubuntu 14.04 中
a2query -M
Run Code Online (Sandbox Code Playgroud)
告诉event, prefork,worker
您可以通过为mpm_<chosen>frommods-available到mods-enabledin添加符号链接来更改它/etc/apache2。
一次只允许一个。
and*_*dol 35
MPM 在编译时配置。事后弄清楚的一种方法是列出在模块中编译的列表。该列表将包括所选的 MPM。可以使用 -l 标志运行 apache 二进制文件来完成列表。
andreas@halleck:~$ apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c
andreas@halleck:~$
Run Code Online (Sandbox Code Playgroud)
在这里我们找到了模块 worker.c,因此我正在运行 worker MPM。
小智 7
在 RedHat 和衍生产品上,只需启动top或ps aux查看 httpd 进程名称:
httpd 意味着 Apache 作为 prefork 运行httpd.worker 意味着它作为工人运行小智 5
克里斯约翰逊是对的。转到httpd.conf => 添加这一行:
<Location /server-info>
SetHandler server-info
</Location>
Run Code Online (Sandbox Code Playgroud)
重启apache:/etc/init.d/httpd restart。然后通过浏览器访问localhost/server-info并查看 MPM Name 部分。
| 归档时间: |
|
| 查看次数: |
97758 次 |
| 最近记录: |