Apache 2.4 enumera los valores de la directiva prefork desde la línea de comando

Apache 2.4 enumera los valores de la directiva prefork desde la línea de comando

No puedo encontrar valores de directivas MPM Prefork comoMaxRequestTrabajadores/MaxSpareThreadsetc en mi archivo de configuración. ¿Hay alguna manera de enumerar estos valores desde la línea 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"

PD: También lo publiqué en SuperUser. No estoy seguro de cuál es el lugar correcto.

Respuesta1

  1. nunca encontrará MaxSpareThreads porque el prefork no tiene subprocesos, por lo que debería ser**MaxSpareServers**
  2. No desde la línea de comando, necesitas"cat" tu archivo de configuración principal, o dondequiera que su distribución los haya colocado (httpd.conf o apache.conf o mpm.conf?)
  3. Si usted tieneinformación_modpuede "rizo" su servidor para obtener su información y analizar/leer la configuración del mismo, eso es lo más parecido a obtener esa información desde la línea de comando que probablemente encontrará. Allí verá una sección llamadaNombre del módulo: prefork.cy después de un texto algo que dice "Configuración actual:" que muestra tu realconfiguración de mpm. (nota: mod_info no debería estar disponible públicamente en su servidor para cualquiera que acceda a él, ya que prácticamente revela toda su configuración).

Si necesita más información sobre cómo se debe configurar prefork, puede consultarlo en eldocumentos oficiales sobre mpm prefork

Nota: No recomendaría prefork de todos modos, opte por el evento y, si es por mod_php, deséchelo en favor de php-fpm.

Respuesta2

Como alternativa a los otros enfoques sugeridos aquí, encuentro que mi distribución de Apache tiene un directorio /usr/share/doc/httpd-2.4.54que contiene plantillas y archivos de varias configuraciones. Entre ellos,httpd-default.conf afirma querefleja la configuración predeterminada para el servidor HTTP Apache.

No lo he probado, pero sospecho que esto es cierto para otro archivo ubicado aquí, httpd-mpm.conf. Este archivo contiene secciones de configuraciones relacionadas con MPM con 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 -llo anterior es un error tipográfico; en mi caso ejecuto apachectl -V, el cual me dice:

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

Entonces consulto la sección de httpd-mpm.confperteneciente aMPM prehorquilla, que contiene:

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

información relacionada