Versión 2.4 del Servidor HTTP Apache
Este documento describe que es un Módulo de Multiprocesamiento y como los usa Apache.
Apache está diseñado para ser un servidor web potente y flexible que pueda funcionar en la más amplia variedad de plataformas y entornos. Las diferentes plataformas y los diferentes entornos, hacen que a menudo sean necesarias diferentes características o funcionalidades, o que una misma característica o funcionalidad sea implementada de diferente manera para obtener una mayor eficiencia. Apache se ha adaptado siempre a una gran variedad de entornos a través de su diseño modular. Este diseño permite a los administradores de sitios web elegir que características van a ser incluidas en el servidor seleccionando que módulos se van a cargar, ya sea al compilar o en tiempo de ejecución.
Apache 2.0 extiende este diseño modular hasta las funciones más básicas de un servidor web. El servidor viene con una serie de Módulos de MultiProcesamiento que son responsables de conectar con los puertos de red de la máquina, aceptar las peticiones, y generar los procesos hijo que se encargan de servirlas.
La extensión del diseño modular a este nivel del servidor ofrece dos beneficios importantes:
mpm_winnt
puede usar funcionalidades nativas de red en lugar de usar la
capa POSIX como hace Apache 1.3. Este beneficio se extiende
también a otros sistemas operativos que implementan sus
respectivos MPMs.worker
, mientras que los sitios web que
requieran por encima de otras cosas estabilidad o compatibilidad
con software antiguo pueden usar
prefork
.
A nivel de usuario, los MPMs son como cualquier otro módulo de Apache. La diferencia más importante es que solo un MPM puede estar cargado en el servidor en un determinado momento. La lista de MPMs disponibles está en la sección índice de Módulos.
En la siguiente tabla se muestran los MPMs por defecto para varios sistemas operativos. Estos serán los MPM seleccionados si no se especifica lo contrario al compilar.
Netware | mpm_netware |
OS/2 | mpmt_os2 |
Unix | prefork , worker , or
event , depending on platform capabilities |
Windows | mpm_winnt |
aquí, 'Unix' se usa para designar a los sistemas operativos "Unix-like", como Linux, BSD, Solaris, Mac OS X, etc.
En el caso de los Unix, la decisión de que MPM se va a instalar depende de dos pregunas:
1. ¿Nos permite el Sistema Operativo hilos?
2. -¿Nos permite el sistema operativo soporte a pila de hilos seguros (Especificamente, las funciones kqueue y epoll)?