
MÓDULOS MULTI-PROCESSING DE APACHE
Los MPM (módulos Multi-Processing de apache) son módulos que determinan cómo el servidor web Apache maneja las conexiones y los procesos para atender las solicitudes de los clientes. Estos módulos son responsables de gestionar la concurrencia, es decir, cómo Apache administra múltiples solicitudes simultáneamente, optimizando el rendimiento según el sistema operativo y las necesidades del servidor.
Características principales de los MPM
- Los MPM permiten a Apache adaptarse a diferentes entornos y cargas de trabajo.
- Cada MPM implementa un modelo diferente para manejar procesos y subprocesos (threads).
- El MPM activo se define en la configuración de Apache (generalmente en el archivo httpd.conf o un archivo relacionado).
- Solo un MPM puede estar activo a la vez en una instalación de Apache.
Principales MPM en Apache
- Prefork: Utiliza múltiples procesos, cada uno manejando una sola conexión a la vez (sin subprocesos). Estable y robusto, ideal para aplicaciones que no son seguras para subprocesos (como módulos no thread-safe, ej. PHP con mod_php). Consume más memoria porque cada conexión requiere un proceso completo. Adecuado para sistemas con poca concurrencia o aplicaciones heredadas.
- Worker: Utiliza una combinación de procesos y subprocesos (threads). Cada proceso puede manejar múltiples conexiones a través de subprocesos. Es más eficiente en términos de memoria que Prefork, ya que un solo proceso puede manejar varias conexiones. Es ideal para servidores con alta concurrencia y aplicaciones que soportan subprocesos (como FastCGI o PHP-FPM).
- Event:: Basado en Worker, pero optimizado para manejar conexiones de larga duración (como las de HTTP/2 o WebSockets). Utiliza un hilo dedicado para manejar conexiones "keep-alive", liberando otros hilos para procesar nuevas solicitudes. Diseñado para entornos de alta concurrencia con muchas conexiones simultáneas.
LoadModule mpm_worker_module modules/mod_mpm_worker.so