Apache 2.4 从命令行列出 prefork 指令值

Apache 2.4 从命令行列出 prefork 指令值

我无法找到 MPM Prefork 指令的值,例如最大请求工作者数/最大空闲线程数等等。有没有办法从命令行列出这些值?

-bash-4.2# httpd -v
Server version: Apache/2.4.23 (Amazon)

-bash-4.2# httpd -V
Server version: Apache/2.4.23 (Amazon)
Server built:   Jul 29 2016 21:42:17
Server's Module Magic Number: 20120211:61
Server loaded:  APR 1.5.1, APR-UTIL 1.4.1
Compiled using: APR 1.5.1, APR-UTIL 1.4.1
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

附言:我也在 SuperUser 上发过。我不确定哪个地方是正确的。

答案1

  1. 你永远找不到 MaxSpareThreads,因为 prefork 不是线程化的,所以应该是**MaxSpareServers**
  2. 不是通过命令行,你需要“cat” 你的主要配置文件,或者您的发行版放置它们的任何位置(httpd.conf 或 apache.conf 或 mpm.conf?)
  3. 如果你有mod_info你可以 ”卷曲“您的服务器获取其信息并解析/读取其中的设置,这是您可能找到的最接近从命令行获取该信息的方法。在那里你会看到一个名为模块名称:prefork.c在一些文字之后,会出现这样一段内容:“当前配置:“这表明你的实际mpm 设置. (注意:mod_info 不应该在您的服务器上公开给任何访问它的人,因为它实际上泄露了您的整个配置)。

如果你需要更多关于如何配置 prefork 的信息,可以查看关于 mpm prefork 的官方文档

注意:无论如何我都不会推荐 prefork,如果是因为 mod_php,那就放弃它,转而使用 php-fpm。

答案2

作为此处建议的其他方法的替代方法,我发现我的 Apache 发行版有一个目录/usr/share/doc/httpd-2.4.54,其中包含各种设置的模板和文件。其中,httpd-default.conf声称它反映 Apache HTTP Server 的默认设置

我还没有证实这一点,但怀疑此处的另一个文件也是如此httpd-mpm.conf。此文件包含与 MPM 相关的设置部分,其前言如下:

# Only one of the below sections will be relevant on your
# installed httpd.  Use "apachectl -l" to find out the
# active mpm.

显然-l上面是一个打字错误;就我而言,我运行apachectl -V,它告诉我:

Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....

因此我查阅了httpd-mpm.conf有关prefork MPM, 其中包含:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
#                         before terminating
<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>```

相关内容