prefork - Servidor HTTP Apache

Versión 2.0 del Servidor HTTP Apache

Apache > Servidor HTTP > Documentación > Versión 2.0 > Módulos

# MPM de Apache prefork

Idiomas disponibles: de | en | es | ja

Descripción: | Implementa un servidor web pre-forking y no hebrado
Estado: | MPM
Identificador de Módulos: | mpm_prefork_module
Fichero de Código Fuente: | prefork.c

### Resumen de contenidos

Este Módulo de MultiProcesamiento (MPM) implementa un servidor web pre-forking y no hebrado que trata las peticiones de una manera similar a como lo hacía Apache 1.3. Esto es apropiado para sitios web que necesitan evitar el hebrado para ser compatibles con librerías que no son seguras cuado se usan hebras. Es también el mejor MPM para aislar cada petición, de manera que si suge un problema con una petición, esto no afecte al resto.

Este MPM está muy autorregulado, de manera que muy pocas veces es necesario ajustar los valores de sus directivas de configuración. El valor que se fije en la directiva `MaxClients` debe ser lo suficientemente grande para tratar tantas peticiones simultáneas como espere recibir su sitio web, pero lo suficientemente pequeño para asegurarse de que hay memoria RAM suficiente para todos los procesos.

### Directivas

### Temas

- Cómo funciona

### Consulte también

- Especificar las direcciones y los puertos que usa Apache

## Cómo funciona

Un solo proceso de control es el responsable de lanzar los procesos hijo que escuchan las peticiones que se puedan producir y las sirven cuando llegan. Apache siempre intenta mantener varios procesos de sobra o en espera, que estén disponibles para servir peticiones cuando lleguen. Así, los clientes no tienen que esperar a que un nuevo proceso hijo sea creado para ser atendidos.

Las directivas `StartServers`, `MinSpareServers`, `MaxSpareServers`, y `MaxClients` regulan la forma en que el proceso padre crea hijos para servir peticiones. En general, Apache funciona bien sin hacer muchas modificaciones en los valores por defecto de estas directivas, de manera que la mayor parte de los sitios web no necesitan ajustar esas directivas a valores diferentes. Los sitios web que necesiten servir más de 256 peticiones simultáneas pueden necesitar incrementar el valor de `MaxClients`, mientras que los sitios web con memoria limitada pueden necesitar decrementar `MaxClients` para evitar que el rendimiento del servidor se degrade (pasando los contenidos de memoria al disco y de vuelta a memoria). Puede obtener más información sobre como mejorar el rendimiento del proceso de creación de procesos en la documentación sobre mejora del rendimiento.

El proceso padre de Apache se inicia normalmente como usuario `root` en Unix para que escuche en el puerto 80, sin embargo, los procesos hijo se crean con menores privilegios de usuario. Las directivas `User` y `Group` se usan para determinar los privilegios de los procesos hijo de Apache. Los procesos hijo deben ser capaces de leer todos los contenidos que van a servir, pero deben tener los menores privilegios posibles.

La directiva `MaxRequestsPerChild` controla cómo el servidor recicla frecuentemente los procesos eliminando los antiguos y creando nuevos.

## MaxSpareServers Directiva

Descripción: | Número máximo de procesos hijo en espera que puede tener el servdor
Sintaxis: | `MaxSpareServers number`
Valor por defecto: | `MaxSpareServers 10`
Contexto: | server config
Estado: | MPM
Módulo: | prefork

La directiva `MaxSpareServers` determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de `MaxSpareServers` procesos hijo en espera, entonces el proceso padre elimina el exceso.

Ajustar este parámetro debe ser necesario solo en sitios web con muchas visitas. Fijar un valor alto para este parámetro es una mala idea casi siempre. Si fija un valor por debajo de `MinSpareServers`, Apache ajustará automáticamente el valor a `MinSpareServers``+ 1`.

### Consulte también

- `MinSpareServers`
- `StartServers`

## MinSpareServers Directiva

Descripción: | Número mínimo de procesos hijo en espera
Sintaxis: | `MinSpareServers number`
Valor por defecto: | `MinSpareServers 5`
Contexto: | server config
Estado: | MPM
Módulo: | prefork

La directiva `MinSpareServers` fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que `MinSpareServers`, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.

Ajustar este parámetro debe ser necesario solo en sitios web con muchas visitas. Fijar un valor alto para este parámetro es una mala idea casi siempre.

### Consulte también

- `MaxSpareServers`
- `StartServers`

Idiomas disponibles: de | en | es | ja