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"

PS:我也在超級用戶上發布了它。我不確定哪一個是正確的地方。

答案1

  1. 你永遠不會找到 MaxSpareThreads 因為 prefork 不是線程化的,所以它應該是**MaxSpareServers**
  2. 不是從命令列,你需要“cat”你的主設定文件,或者您的發行版將它們放置在何處(httpd.conf 或 apache.conf 或 mpm.conf?)
  3. 如果你有模組資訊你可以 ”捲曲「您的伺服器獲取其資訊並從中解析/讀取設置,這是您可能會找到的從命令列獲取該資訊最接近的東西。在那裡您將看到一個名為模組名稱: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所以我查閱了有關的部分預叉 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>```

相關內容