¿Cómo puedo saber si Apache se está ejecutando (o configurado para ejecutarse) como prefork o trabajador?
40
¿Cómo puedo saber si Apache se está ejecutando (o configurado para ejecutarse) como prefork o trabajador?
Respuestas:
El MPM se configura en tiempo de compilación. Una forma de resolverlo después es hacer una lista compilada en módulos. Esa lista incluirá el MPM elegido. El listado se puede lograr ejecutando el binario apache, con el indicador -l.
Aquí encontramos el módulo worker.c, por lo tanto, estoy ejecutando el MPM de trabajo.
fuente
apache2ctl -Mpara enumerar los módulos activos.Las respuestas dadas por Series8217 y Andol son incorrectas.
La pregunta era cómo saber si Apache ejecuta prefork o trabajador. El consejo dado por las otras respuestas solo dice cuál es el MPM predeterminado (basado en módulos compilados), no si ese valor predeterminado u otra opción se está utilizando en este momento.
Si
httpd -Vmuestra prefork, eso solo significa que prefork es el MPM predeterminado compilado. Eso se puede anular cambiando la configuración del archivo de configuración de Apache, como se muestra en este proceso:/etc/sysconfig/httpdEn CentOS / RedHat)HTTPD=/usr/sbin/httpd.workerEl MPM que se está ejecutando realmente se puede mostrar usando este proceso:
curl localhost/server-infohttpd -Vnuevo: seguirá mostrando prefork, no trabajadorLínea de fondo:
httpd -Vmuestra la opción predeterminada, no qué opción está realmente en usoHay respuestas en muchos, muchos sitios web que dicen,
httpd -Vúselo para saber si Apache está ejecutando prefork o trabajador. Todos están equivocados. Pruebe el procedimiento anterior para verlo usted mismo.fuente
En Ubuntu 14.04
Dice
event,prefork,workerPuede cambiarlo agregando enlaces simbólicos de
mpm_<chosen>frommods-availableamods-enabledin/etc/apache2.Solo se permite uno a la vez.
fuente
eventMPM es, según el sitio de Apache, "una variante del MPM trabajador con el objetivo de consumir hilos solo para conexiones con procesamiento activo".En RedHat y derivados, simplemente inicie
topops auxy mire el nombre del proceso httpd:httpdsignifica que Apache se está ejecutando como preforkhttpd.workersignifica que se está ejecutando como trabajadorfuente
En RHEL / Fedora / etc, ejecute
httpd -V. Obtendrá algunos resultados que incluyen lo siguiente:Aquí 'Server MPM' es 'Prefork', por lo que mi servidor está ejecutando el prefork MPM.
fuente
Chris Johnson tiene razón. Vaya a httpd.conf => agregue esta línea:
Reinicie apache: /etc/init.d/httpd restart. Luego acceda a localhost / server-info desde su navegador y mire la sección Nombre de MPM .
fuente
Aquí hay otro método que espero que sea confiable para determinar qué MPM está en uso. Agregue lo siguiente a su
httpd.conf:Luego verifique los encabezados usando
curl -I localhost | grep X-MPM.fuente
en centos (o rhel) puede ejecutar este comando:
si ve
/usr/sbin/httpd.workerque se está ejecutando, está utilizando el MPM de trabajo si ves/usr/sbin/httpdcorrer, entonces está usando preforkfuente
La respuesta de Chris Johnson es correcta.
Después de habilitar el módulo de información, como se documenta en la Documentación de Apache ( http://httpd.apache.org/docs/2.2/mod/mod_info.html ), este revestimiento le dará el MPM que está utilizando:
fuente
Una forma de resolverlo en Debian como distribuciones es ejecutando:
fuente