Apache 2.4 lista valores da diretiva prefork na linha de comando

Apache 2.4 lista valores da diretiva prefork na linha de comando

Não consigo encontrar valores das diretivas MPM Prefork comoMaxRequestWorkers/MaxSpareThreadsetc no meu arquivo de configuração. Existe uma maneira de listar esses valores na linha de comando?

-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: Eu postei no SuperUser também. Não tenho certeza de qual é o lugar certo.

Responder1

  1. você nunca encontrará MaxSpareThreads porque o prefork não é encadeado, então deve ser**MaxSpareServers**
  2. Não na linha de comando, você precisa"cat" seu arquivo de configuração principal, ou onde quer que sua distribuição os tenha colocado (httpd.conf ou apache.conf ou mpm.conf?)
  3. Se você temmod_infovocê pode "ondulação"seu servidor para obter informações e analisar/ler as configurações dele, essa é a coisa mais próxima de obter essas informações da linha de comando que você provavelmente encontrará. Lá você verá uma seção chamadaNome do módulo: prefork.ce depois de algum texto algo que diz "Configuração atual:"que mostra seu realconfigurações de mpm. (nota: mod_info não deve estar disponível publicamente em seu servidor para qualquer pessoa que o acesse, pois praticamente revela toda a sua configuração).

Se precisar de mais informações sobre como o prefork é/deve ser configurado, você pode verificá-lo nodocumentos oficiais sobre mpm prefork

Nota: eu não recomendaria o prefork de qualquer maneira, vá para o evento e se for por causa do mod_php, troque-o pelo php-fpm.

Responder2

Como alternativa às outras abordagens sugeridas aqui, descobri que minha distribuição Apache possui um diretório /usr/share/doc/httpd-2.4.54que contém modelos e arquivos de várias configurações. Entre eles, httpd-default.confafirma quereflete as configurações padrão do Apache HTTP Server.

Eu não provei isso, mas suspeito que isso seja verdade para outro arquivo localizado aqui, httpd-mpm.conf. Este arquivo contém seções de configurações relacionadas ao MPM com este preâmbulo:

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

Aparentemente -lacima há um erro de digitação; no meu caso, eu corro apachectl -V, o que me diz:

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

Então eu consulto a seção httpd-mpm.confreferente apré-garfo MPM, que contém:

# 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>```

informação relacionada