Versión 2.0 del Servidor HTTP Apache
Directivas Comunes de los MPM de Apache
Descripción: | Es una colección de directivas que están implementadas en más de un módulo de multiprocesamiento (MPM) |
---|---|
Estado: | MPM |
AcceptMutex Directiva
Descripción: | Método que usa Apache para serializar múltiples procesos hijo que aceptan peticiones en las conexiones de red |
---|---|
Sintaxis: | AcceptMutex Default|method |
Valor por defecto: | AcceptMutex Default |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , perchild , prefork , threadpool , worker |
Las directivas AcceptMutex
determinan el
método que usa Apache para serializar múltiples procesos
hijo que aceptan peticiones en las conexiones de red. En las
versiones de Apache anteriores a la 2.0, el método era
seleccionable solo cuando se compilaba el servidor. El mejor
método a usar depende mucho de la arquitectura y de la
plataforma que use. Si desea más información, consulte
la documentanción sobre ajustes para conseguir un mejor
rendimiento.
Si el valor especificado en esta directiva es
Default
, entonces se usará el método
seleccionado cuando se compiló el servidor. Más abajo
puede encontrar una lista con otros métodos. Tenga en cuenta
que no todos los métodos están disponibles en todas las
plataformas. Si el método especificado no está
disponible, se escribirá un mensaje en el log de errores con
una lista de los métodos que puede usar.
flock
- usa la llamada al sistema
flock(2)
para bloquear el fichero especificado en la directivaLockFile
. fcntl
- usa la llamada al sistema
fcntl(2)
para bloquear el fichero especificado en la directivaLockFile
. posixsem
- usa semáforos compatibles con POSIX para implementar el mutex.
pthread
- Usa mutexes POSIX implementados según la especificación de hebras POSIX (PThreads).
sysvsem
- usa semáforos de tipo SySV para implementar el mutex.
Si quiere ver cuál es el método por defecto que se
seleccionó para usar en su sistema al compilar, especifique
el valor debug
en la directiva LogLevel
. El valor por defecto de la
directiva AcceptMutex
aparecerá
escrito en el ErrorLog
.
BS2000Account Directiva
Descripción: | Define la cuenta sin privilegios en máquinas BS2000 |
---|---|
Sintaxis: | BS2000Account account |
Contexto: | server config |
Estado: | MPM |
Módulo: | perchild , prefork |
Compatibilidad: | Solo disponible en máquinas BS2000 |
La directiva BS2000Account
está
disponible solo en hosts BS2000. Debe usarse para definir el
número de cuenta del usuario sin privilegios del servidor
Apache (que se configuró usando la directiva User
). Esto es un requerimiento
del subsistema POSIX BS2000 (@@@@@ para reemplazar el entorno de
tareas BS2000 subyaciente haciendo un sub-LOGON) para prevenir que
scripts CGI accedan a recursos de la cuenta con privilegios con la
que se suele iniciar el servidor, normalmente
SYSROOT
.
Nota
La directiva
BS2000Account
solamente puede usarse una vez.
Consulte también
CoreDumpDirectory Directiva
Descripción: | Directorio al que Apache intenta cambiarse antes de realizar un volcado de memoria |
---|---|
Sintaxis: | CoreDumpDirectory directory |
Valor por defecto: | Consulte la sección de uso para ver el valor por defecto |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_winnt , perchild , prefork , threadpool , worker |
Esta directiva controla el directorio al cual intenta cambiarse
Apache antes de realizar un volcado de memoria. Por defecto, el
volcado de memoria se hace en el directorio especificado en la
directiva ServerRoot
, sin
embargo, como el usuario con el que se está ejecutando Apache
podría no tener permisos para escribir en ese directorio, los
volcados de memoria muchas veces no se hacen en ningún
sitio. Si quiere que el volcado se memoria se guarde para analizar
los fallos posteriormente, puede usar esta directiva para
especificar un directorio diferente.
Volcados de memoria en Linux
Si Apache se
inicia como usuario root y después se cambia el usuario con
el se está ejecutando, el kernel de Linux
desactiva los volcados de memoria, incluso si se ha
especificado un directorio en el que se puede escribir para
realizar este proceso. Apache (en las versiones 2.0.46 y
posteriores) reactiva los volcados de memoria en los sistemas
con versiones Linux 2.4 y posteriores, pero solamente si se ha
configurado explícitamente la directiva
CoreDumpDirectory
.
EnableExceptionHook Directiva
Descripción: | Activa un hook que inicia handlers de excepción después de un error irrecuperable |
---|---|
Sintaxis: | EnableExceptionHook On|Off |
Valor por defecto: | EnableExceptionHook Off |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , perchild , prefork , threadpool , worker |
Compatibilidad: | Disponible en las versiones de Apache 2.0.49 y posteriores |
Por razones de seguridad esta directiva está disponible
solamente si el servidor ha sido configurado con la opción
--enable-exception-hook
. Esto activa un hook que
permite que se conecten módulos externos y que realicen
alguna acción después de que un proceso hijo sufra un
error irrecuperable.
Hay otros dos módulos, mod_whatkilledus
y
mod_backtrace
que usan este hook. Por favor, consulte
el siguiente enlace, EnableExceptionHook perteneciente al sitio web de Jeff
Trawick para obtener más información sobre el tema.
Group Directiva
Descripción: | Grupo con el que el servidor atenderá las peticiones |
---|---|
Sintaxis: | Group unix-group |
Valor por defecto: | Group #-1 |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpmt_os2 , perchild , prefork , threadpool , worker |
Compatibilidad: | Solamente puede usarse en global server config a partir de la versión de Apache 2.0 |
La directiva Group
determina el grupo
con el que el servidor atenderá las peticiones. Para usar
esta directiva, el servidor debe haber sido iniciado con el
usuario root
. Si inicia el servidor con un usuario
que no sea root, el servidor no podrá cambiarse al grupo
especificado, en lugar de esto continuará ejecutándose
con el grupo del usuario que lo inició. Unix-group
debe tomar un de los siguiente valores:
- El nombre de un grupo
- Se refiere al grupo que lleva el nombre que se especifica.
#
seguido del número de un grupo.- Se refiere al grupo asociado a ese número.
Por ejemplo
Group www-group
Se recomienda que cree un nuevo grupo específicamente para
ejecutar el servidor. Algunos administradores usan el ususario
nobody
, pero esto no es siempre posible ni
aconsejable.
Seguridad
No ponga el valor
root
en la directiva Group
(o en la directiva User
) a menos que sepa
exactamente lo que está haciendo y los peligros que
conlleva.
Importante: El uso de esta directiva en <VirtualHost>
no está
permitido ya. Para configurar su servidor para
suexec
use la directiva SuexecUserGroup
.
Listen Directiva
Descripción: | Direcciones IP y puertos en los que escucha el servidor |
---|---|
Sintaxis: | Listen [IP-address:]portnumber |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
Compatibilidad: | Directiva de uso obligatorio en Apache 2.0 |
La directiva Listen
indica las
direcciones IP y los puertos en los que debe escuchar Apache; por
defecto, el servidor responde a las peticiones que se reciban en
cualquier dirección IP de las interfaces de red. El uso de
Listen
es ahora obligatorio. Si no
está en el fichero de configuración, el servidor no
podrá iniciarse. Esto supone un cambio respecto a las
versiones anteriores de Apache.
La directiva Listen
le especifica al
servidor los puertos o las combinaciones de direcciones y puertos
cuyas peticiones debe aceptar. Si solamente se especifica un
número de puerto, el servidor escuchará en ese puerto,
en todas las interfaces de red. Si se especifica una
dirección IP y un puerto, el servidor escuchará
solamente en esa dirección IP y en ese puerto.
Se pueden usar varias directivas Listen
para especificar varias direcciones y puertos de escucha. El
servidor responderá a peticiones de cualquiera de esas
direcciones y puertos.
Por ejemplo, para hacer que el servidor acepte conexiones en los puertos 80 y 8000, use:
Listen 80
Listen 8000
Para hacer que el servidor acepte conexiones en dos direcciones y puertos difrentes, use
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
Las direcciones IPv6 deben escribirse entre corchetes, como en el siguiente ejemplo:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
Condición de error
Varias directivasListen
para la misma dirección IP y
el mismo puerto tendrán como resultado un mensaje de error
del tipo Dirección actualmente en uso
.
Consulte también
ListenBackLog Directiva
Descripción: | Longitud máxima de la cola de conexiones en espera |
---|---|
Sintaxis: | ListenBacklog backlog |
Valor por defecto: | ListenBacklog 511 |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
Longitud máxima de la cola de conexiones en espera. En
general, no es necesario ni deseable hacer ninguna
modificación, pero en algunos sistemas es beneficioso
incrementar esta longitud cuando se está sufriendo un ataque
TCP SYN flood. Consulte la información sobre el
parámetro backlog de la llamada al sistema
listen(2)
.
Este número estará la mayor parte de las veces limitado a un valor aún menor por el sistema operativo. Esto varía de un sistema operativo a otro. Tenga en cuenta también que muchos sistemas operativos no usan exactamente lo que se especifica en el backlog, sino que usan un número basado en el valor especificado (aunque normalmente mayor).
LockFile Directiva
Descripción: | Ubicación del fichero de lock de serialización de aceptacioón de peticiones |
---|---|
Sintaxis: | LockFile filename |
Valor por defecto: | LockFile logs/accept.lock |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , perchild , prefork , threadpool , worker |
La directiva LockFile
especifica la ruta
al archivo de lock (lockfile) que se utiliza cuando la directiva
AcceptMutex
tiene valor
fcntl
o flock
. En principio no se debe
modificar el valor por defecto de esta directiva. La razón
principal para moficiarlo es que el directorio de
logs
esté montado en NFS, porque el
archivo de lock debe almacenarse en un disco local. El
PID del proceso principal del servidor se añade
automáticamente al nombre del fichero.
Seguridad
Es aconsejable
no poner este fichero en un directorio en el que tenga
permisos de escritura todos los usuarios como
/var/tmp
porque alguien podría provocar un
ataque de denegación de servicio y evitar que el servidor
se inicie creando un archivo de lock con el mismo nombre que el
que el servidor intentará crear.
Consulte también
MaxClients Directiva
Descripción: | Número máximo de procesos hijo que serán creados para atender peticiones |
---|---|
Sintaxis: | MaxClients number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , prefork , threadpool , worker |
La directiva MaxClients
especifica el
límite de peticiones simultáneas que serán
atendidas. Cualquier intento de conexión por encima del
límite MaxClients
se pondrá en
cola, hasta llegar a un límite basado en el valor de la
directiva ListenBacklog
. Una vez que un
proceso hijo termina de atender una petición y queda libre, se
atenderá una conexión en cola.
En servidores que no usan hebras (por ejemplo,
prefork
), el valor especificado en
MaxClients
se traduce en el número
máximo de procesos hijo que se crearán para atender
peticiones. El valor por defecto es 256
; para
incrementarlo, debe incrementar también el valor especificado
en la directiva ServerLimit
.
En servidores que usan hebras y en servidores híbridos
(por ejemplo, beos
o worker
)
MaxClients
limita el número total de
hebras que van a estar disponibles para servir clientes. El valor
por defecto para beos
es 50
. Para
MPMs híbridos el valor por defecto es 16
(ServerLimit
)
multiplicado por 25
(ThreadsPerChild
). Por lo tanto, si va a usar en
MaxClients
un valor que requiera más
de 16 procesos deberá también incrementar el valor de la
directiva ServerLimit
.
MaxMemFree Directiva
Descripción: | Cantidad máxima de memoria que el asignador principal puede tomar sin hacer una llamada a free() |
---|---|
Sintaxis: | MaxMemFree KBytes |
Valor por defecto: | MaxMemFree 0 |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , prefork , threadpool , worker , mpm_winnt |
La directiva MaxMemFree
especifica el
número máximo de kbytes libres que el asignador de memoria
principal puede tomar sin hacer una llamada al sistema
free()
. Cuando no se especifica ningún valor en esta
directiva, o cuando se especifica el valor cero, no existirá tal
límite.
MaxRequestsPerChild Directiva
Descripción: | Límite en el número de peticiones que un proceso hijo puede atender durante su vida |
---|---|
Sintaxis: | MaxRequestsPerChild number |
Valor por defecto: | MaxRequestsPerChild 10000 |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
La directiva MaxRequestsPerChild
especifica el número máximo de peticiones que un proceso hijo
atenderá durante su existencia. Después de atender
MaxRequestsPerChild
peticiones, el proceso
hijo se eliminará. Si el valor especificado en esta directiva
MaxRequestsPerChild
es 0
, no
habrá límite.
Diferentes valores por defecto
El valor por defecto para los módulos
mpm_netware
y mpm_winnt
es
0
.
Especificar en la directiva
MaxRequestsPerChild
un valor distinto de
cero tiene dos ventajas:
- limita la cantidad de memoria que un proceso puede consumir en caso de que haya un fuga (accidental) de memoria;
- establece un límite finito a la vida de los procesos, lo que ayuda a reducir el número existente de procesos cuando se reduce la carga de trabajo en el servidor.
Nota
Para las peticiones KeepAlive
, solamente la primera petición
cuenta para este límite. De hecho, en ese caso lo que se
limita es el número de conexiones por proceso hijo.
MaxSpareThreads Directiva
Descripción: | Número máximo de hebras en espera |
---|---|
Sintaxis: | MaxSpareThreads number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpmt_os2 , perchild , threadpool , worker |
Número máximo de hebras en espera. Los diferentes MPMs tienen diferentes comportamientos respecto a esta directiva.
En el módulo perchild
el valor por
defecto usado es MaxSpareThreads 10
. Este MPM
monitoriza el número de hebras en espera por proceso hijo. Si
hay demasiadas hebras en espera en un proceso hijo, el servidor
empezará a eliminar las hebras de sobra.
En los módulos worker
,
leader
y threadpool
el valor
por defecto usado es MaxSpareThreads 250
. Estos MPMs
monitorizan el número del hebras en espera en servidor en
conjunto. Si hay demasiadas hebras en espera en el servidor, se
eliminan algunos procesos hijo hasta que el número de hebras
en espera se ajuste al límite especificado.
En el módulo mpm_netware
el valor por
defecto usado es MaxSpareThreads 100
. Como este MPM
ejecuta único proceso, las hebras en espera se calculan
también en base al servidor en conjunto.
Los módulos beos
y mpmt_os2
funcionan de manera similar a mpm_netware
. El
valor por defecto para beos
es
MaxSpareThreads 50
. Para mpmt_os2
el
valor por defecto es 10
.
Restricciones
El rango de valores que puede tomar
MaxSpareThreads
está acotado. Apache
corregirá automáticamente el valor especificado de
acuerdo con las siguientes reglas:
- Si usa el módulo
perchild
el valor especificado en la directivaMaxSpareThreads
tiene que ser menor o igual al valor especificado enThreadLimit
. mpm_netware
necesita que el valor de esta directiva sea mayor que el valor de la directivaMinSpareThreads
.- En los módulos
leader
,threadpool
yworker
el valor especificado tiene que ser mayor o igual a la suma de los valores especificados en las directivasMinSpareThreads
yThreadsPerChild
.
Consulte también
MinSpareThreads Directiva
Descripción: | Número mínimo de hebras en espera para atender picos de demanda en las peticiones |
---|---|
Sintaxis: | MinSpareThreads number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpmt_os2 , perchild , threadpool , worker |
Número mínimo de hebras en espera para atender picos de demanda en las peticiones. Los diferentes MPMs tratan esta directiva de forma diferente.
El módulo perchild
usa por defecto
MinSpareThreads 5
y calcula el número de hebras
en espera en base al número de procesos hijo. Si no hay
suficientes hebras en espera en un proceso hijo, el servidor
empezará a crear nuevas hebras dentro de ese proceso hijo. De
esta manera, si especifica en la directiva NumServers
el valor 10
y en la directiva MinSpareThreads
un valor
de 5
, tendrá como mínimo 50 hebras en
espera en su sistema.
Los módulos worker
,
leader
y threadpool
usan un
valor por defecto MinSpareThreads 75
y calculan el
número de hebras en espera en el servidor en conjunto. Si no
hay suficientes hebras en espera en el servidor, entonces se crean
procesos hijo hasta que el número de hebras en espera sea
suficiente.
El módulo mpm_netware
usa un valor por defecto
MinSpareThreads 10
y como es un MPM que trabaja con
un único proceso, calcula el número de hebras en espera en base al
número total que hay en el servidor.
Los módulos beos
y mpmt_os2
funcionan de modo similar a como lo hace el módulo
mpm_netware
. El valor por defecto que usa
beos
es MinSpareThreads 1
.
mpmt_os2
usa por defecto el valor
5
.
Consulte también
PidFile Directiva
Descripción: | Fichero en el que el servidor guarda el ID del proceso demonio de escucha (daemon) |
---|---|
Sintaxis: | PidFile filename |
Valor por defecto: | PidFile logs/httpd.pid |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
La directiva PidFile
especifica el
fichero en el que el servidor guarda el ID del proceso demonio de
escucha (daemon). Si el nombre del fichero especificado no es una
ruta absoluta, entonces se asume que es relativa al directorio
especificado en ServerRoot
.
Ejemplo
PidFile /var/run/apache.pid
Con frecuencia es útil tener la posibilidad de enviar al
servidor una señal, de manera que cierre y vuelva a abrir el
ErrorLog
y el TransferLog
, y vuelva a leer
los ficheros de configuración. Esto es lo que ocurre cuando
se envía la señal SIGHUP (kill -1) al ID del proceso que
aparece en PidFile
.
El PidFile
está sujeto a las mismas
advertencias que se hicieron para los ficheros log sobre su
ubicación y sobre su seguridad.
Nota
Se recomienda que para Apache 2 se
use solamente el script apachectl
para
(re-)iniciar o parar el servidor.
ReceiveBufferSize Directiva
Descripción: | TCP receive buffer size |
---|---|
Sintaxis: | ReceiveBufferSize bytes |
Valor por defecto: | ReceiveBufferSize 0 |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
The documentation for this directive has not been translated yet. Please have a look at the English version.
ScoreBoardFile Directiva
Descripción: | Ubicación del fichero que almacena los datos necesarios para coordinar el funcionamiento de los procesos hijo del servidor |
---|---|
Sintaxis: | ScoreBoardFile file-path |
Valor por defecto: | ScoreBoardFile logs/apache_status |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_winnt , perchild , prefork , threadpool , worker |
Apache usa un marcador para que los procesos hijo se comuniquen con sus procesos padre. Algunas arquitecturas necesitan un archivo para facilitar esta comunicación. Si no se especifica ningún fichero, Apache intenta en primer lugar crear el marcador en memoria (usando memoria compartida anónima) y, si esto falla, intentará crear el fichero en disco (usando memoria compartida basada en ficheros). Si se especifica un valor en esta directiva, Apache creará directamente el archivo en disco.
Ejemplo
ScoreBoardFile /var/run/apache_status
El uso de memoria compartida basada en ficheros es útil para aplicaciones de terceras partes que necesitan acceso directo al marcador.
Si usa la directiva ScoreBoardFile
,
puede mejorar la velocidad del servidor poniendo el fichero en
memoria RAM. Pero tenga cuidado y siga las mismas recomendaciones
acerca del lugar donde se almacenan los ficheros log y su seguridad.
Consulte también
SendBufferSize Directiva
Descripción: | Tamaño del buffer TCP |
---|---|
Sintaxis: | SendBufferSize bytes |
Valor por defecto: | SendBufferSize 0 |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker |
El servidor fijará el tamaño del buffer TCP en los bytes que se especifiquen en esta directiva. Incrementar este valor por encima de los valores estándar del sistema operativo es muy útil en situaciones de alta velocidad y gran latencia (por ejemplo, 100ms o así, como en el caso de conexiones intercontinentales de gran capacidad).
Si se especifica el valor 0
, el servidor usará el
valor por defecto del sistema operativo.
ServerLimit Directiva
Descripción: | Límite superior del número configurable de procesos |
---|---|
Sintaxis: | ServerLimit number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , perchild , prefork , threadpool , worker |
En el módulo MPM prefork
, esta directiva
significa el valor máximo que se puede especificar en la
directiva MaxClients
sobre el tiempo de vida de un proceso de Apache. En el
módulo MPM worker
, esta diretiva en
combinación con la directiva ThreadLimit
significa el valor
máximo que puede especificarse en la directiva MaxClients
sobre el tiempo de vida
de un proceso de Apache. Los intententos de cambiar el valor de
esta directiva durante el reinicio del servidor serán
ignorados. El valor de MaxClients
sí que puede
modificarse durante el reinicio.
Cuando se usa esta directiva hay que tener especial cuidado.
Si en la directiva ServerLimit
se
especifica un valor mucho más alto de lo necesario, se reservará
memoria compartida que no será usada. Si ambas directivas
ServerLimit
y MaxClients
tienen especificados
valores mayores que los que el sistema puede manejar, Apache puede
que no se inicie o que el sistema se vuelva inestable.
Con el módulo MPM prefork
, use esta
directiva solamente si necesita especificar en la directiva
MaxClients
un valor
mayor a 256 (el valor por defecto). No especifique un valor mayor
del que vaya a especificar en la directiva MaxClients
.
Con los módulos worker
,
leader
y threadpool
use esta
directiva solamente si los valores especificados en las directivas
MaxClients
y ThreadsPerChild
precisan más de 16
procesos del servidor (valor por defecto). No especifique en esta
directiva un valor mayor que el número de procesos del servidor
requeridos por lo especificado en las directivas MaxClients
y ThreadsPerChild
.
Con el MPM perchild
, use esta directiva solo
si tiene que especificar en la directiva NumServers
un valor mayor de 8 (el
valor por defecto).
Nota
Existe un límite inviolable compilado en el servidor que es
ServerLimit 20000
. Con este límite se intentan
evitar las consecuencias que pueden tener los errores tipográficos.
Consulte también
StartServers Directiva
Descripción: | Número de procesos hijo del servidor que se crean al iniciar Apache |
---|---|
Sintaxis: | StartServers number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , mpmt_os2 , prefork , threadpool , worker |
La directiva StartServers
especifica el
número de procesos hijo que se crean al iniciar Apache. Como
el número de procesos está controlado dinámicamente
según la carga del servidor, no hay normalmente ninguna
razón para modificar el valor de este parámetro.
El valor por defecto cambia según el MPM de que se trate. Para
leader
, threadpool
y
worker
el valor por defecto es StartServers
3
. Para prefork
el valor por defecto es
5
y para mpmt_os2
es
2
.
StartThreads Directiva
Descripción: | Número de hebras que se crean al iniciar Apache |
---|---|
Sintaxis: | StartThreads number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | beos , mpm_netware , perchild |
Número de hebras que se crean al iniciar Apache. Como el número de procesos está controlado dinámicamente según la carga del servidor, no hay normalmente ninguna razón para modificar el valor de este parámetro.
En el módulo perchild
el valor por defecto es
StartThreads 5
y esta directiva controla el número de
hebras por proceso al inicio.
En el módulo mpm_netware
el valor por
defecto es StartThreads 50
y, como solamente hay un
proceso, este es el número total de hebras creadas al iniciar
el servidor para servir peticiones.
En el módulo beos
el valor usado por
defecto es StartThreads 10
. En este caso también
representa el número total de hebras creadas al iniciar el
servidor para servir peticiones.
ThreadLimit Directiva
Descripción: | Marca el límite superior del número de hebras por proceso hijo que pueden especificarse |
---|---|
Sintaxis: | ThreadLimit number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , mpm_winnt , perchild , threadpool , worker |
Compatibilidad: | Disponible para mpm_winnt en las versiones de Apache
2.0.41 y posteriores |
Esta directiva determina el valor máximo que puede especificarse
en la directiva ThreadsPerChild
para el tiempo de
vida de un proceso de Apache. Los intentos por modificar este
valor durante un reinicio serán ingnorados, pero el valor de la
directiva ThreadsPerChild
puede modificarse
durante un reinicio hasta un valor igual al de esta directiva.
Cuando se usa esta directiva hay que poner especial
atención. Si en la directiva
ThreadLimit
se especifica un valor mucho
más grande que en ThreadsPerChild
, se reservará
memoria compartida en exceso que no será usada. Si tanto en
ThreadLimit
como en ThreadsPerChild
se especifican
valores mayores de los que el sistema puede tratar, Apache
podría no iniciarse o su funcionamiento podría volverse
inestable. No especifique en esta directiva un valor mayor del
mayor valor posible que piense que va a especificar en ThreadsPerChild
para la
ejecución de Apache de ese momento.
El valor por defecto de la directiva
ThreadLimit
es 1920
cuando se
usa con mpm_winnt
y 64
en otro caso.
Nota
Hay un límite estricto compilado
en el servidor: ThreadLimit 20000
(o
ThreadLimit 15000
si usa
mpm_winnt
). Este límite existe para evitar
los efectos que pueden ser provocados por errores
tipográficos.
ThreadsPerChild Directiva
Descripción: | Número de hebras creadas por cada proceso hijo |
---|---|
Sintaxis: | ThreadsPerChild number |
Valor por defecto: | Consulte la sección de uso para obtener más información |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , mpm_winnt , threadpool , worker |
Esta directiva especifica el número de hebras creadas por
cada proceso hijo. El proceso hijo crea estas hebras al inicio y
no vuelve a crear más. Si se usa un MPM como
mpm_winnt
, en el que solamente hay un proceso
hijo, este número debería ser lo suficientemente grande
como para atender toda la carga del servidor. Si se usa un
módulo MPM como worker
, en el que hay
múltiples procesos hijo, el número total de
hebras debería ser lo suficientemente grande como para
atender la carga en circustancias normales del servidor.
El valor por defecto de la directiva
ThreadsPerChild
es 64
cuando
se usa mpm_winnt
y 25
en otro caso.
User Directiva
Descripción: | Nombre de usuario con el que el servidor responderá a las peticiones |
---|---|
Sintaxis: | User unix-userid |
Valor por defecto: | User #-1 |
Contexto: | server config |
Estado: | MPM |
Módulo: | leader , perchild , prefork , threadpool , worker |
Compatibilidad: | Válida solamente en global server config a partir de la versión de Apache 2.0 |
La directiva User
especifica el
identificador de usuario con el que el servidor responderá a
las peticiones. Para usar esta directiva, el servidor debe haber
sido iniciado como root
. Si se inicia Apache con un
usario distinto de root, no se podrá cambiar a un usuario con
menores privilegios, y el servidor continuará ejecutándose
con el usuario original. Si inicia el servidor como
root
, entonces es normal que el procedimiento padre
siga ejecutándose como root. Unix-userid puede tomar
uno de los siguientes valores:
- Un nombre de ususario
- Se refiere al usuario dado por su nombre.
- # seguido por un número de usuario.
- Se refiere al usuario que corresponde a ese número.
El usuario debe no tener privilegios suficientes para acceder a
ficheros que no deban ser visibles para el mundo exterior, y de
igual manera, el usuario no debe ser capaz de ejecutar código que
no sea susceptible de ser objeto de respuestas a peticiones
HTTP. Se recomienda que especifique un nuevo usuario y un nuevo
grupo solamente para ejecutar el servidor. Algunos
administradores usan el usuario nobody
, pero esto no
es siempre deseable, porque el usuario nobody
puede
tener otras funciones en su sistema.
Seguriad
No espcifique en la directiva User
(o
Group
) el valor
root
a no ser que sepa exactamente lo que está
haciendo, y cuáles son los peligros.
Con el MPM perchild
, que está
diseñado para ejecutar hosts virtuales por diferentes ID de
usuario, la directiva User
define el ID de
usuario para el servidor principal y para el resto de las
secciones <VirtualHost>
sin una directiva AssignUserID
.
Nota especial: El uso de esta directiva en <VirtualHost>
no está
ya soportado. Para configurar su servidor para
suexec
use SuexecUserGroup
.