Con FPM puede ejecutar múltiples pools de procesos con diferentes parámetros.
Aquí están los parámetros que pueden ser ajustados por pool.
-
listen
string
-
La dirección para aceptar peticiones FastCGI. Sintaxis válidas:
'ip.add.re.ss:port', 'port', '/path/to/unix/socket'.
Esta opción es obligatoria para cada pool.
-
listen.backlog
int
-
Afecta listen(2) backlog.
Un valor de -1
significa el máximo en los sistemas BSD.
Valor por omisión: -1
(FreeBSD o OpenBSD)
o 511
(Linux y otras plataformas).
-
listen.allowed_clients
string
-
Lista de direcciones IPv4 o IPv6 de los clientes FastCGI autorizados a conectarse.
Es equivalente a la variable de entorno FCGI_WEB_SERVER_ADDRS en el
sistema FastCGI original de PHP (5.2.2+). No tiene sentido a menos que se utilice un socket tcp en
escucha. Cada dirección debe estar separada por una coma. Si este valor no está especificado, las conexiones serán aceptadas desde cualquier dirección ip.
Valor por omisión: no definido (toda dirección IP aceptada).
-
listen.owner
string
-
Afecta los permisos para el socket Unix si se utiliza. En Linux, los permisos read/write
deben ser afectados para autorizar conexiones desde un servidor web. Muchos sistemas
derivados de BSD autorizan conexiones cualesquiera sean los permisos.
Valores por omisión: user y group son los del usuario actual, el modo es 0660.
-
listen.group
string
-
Véase listen.owner
.
-
listen.mode
string
-
Véase listen.owner
.
-
listen.acl_users
string
-
Cuando las listas de control de acceso POSIX son soportadas, pueden ser definidas usando esta opción.
Cuando se define, listen.owner
y listen.group
son ignorados.
El valor es una lista de nombres de usuarios separados por comas.
-
listen.acl_groups
string
-
Véase listen.acl_users
.
El valor es una lista de nombres de grupos separados por comas.
-
user
string
-
Usuario Unix de los procesos FPM. Esta opción es obligatoria.
-
group
string
-
Grupo Unix de los procesos FPM. Si no se especifica, se utiliza el grupo del usuario.
-
pm
string
-
Elige cómo el gestor de procesos va a controlar el número de procesos hijos.
Valores posibles: static
, ondemand
,
dynamic
. Opción obligatoria.
static
- número de procesos hijos fijos (pm.max_children
).
ondemand
- el proceso se reactiva a demanda
(cuando se solicita, es lo opuesto a dinámico donde pm.start_servers
se inician cuando el servicio se inicia).
dynamic
- número de procesos hijos dinámicos basados en las directivas siguientes:
pm.max_children
, pm.start_servers
,
pm.min_spare_servers
, pm.max_spare_servers
.
-
pm.max_children
int
-
Número de procesos hijos a crear cuando pm
está ajustado a
static
. Número máximo de procesos hijos a crear cuando
pm
está ajustado a dynamic
. Opción obligatoria.
Esta opción afecta al límite del número de peticiones simultáneas que serán servidas. Equivalente a
ApacheMaxClients con mpm_prefork y a PHP_FCGI_CHILDREN en la implementación original
de FastCGI de PHP.
-
pm.start_servers
int
-
Número de procesos hijos a crear al inicio. Utilizado solo si
pm
está ajustado a dynamic
.
Valor por omisión: (min_spare_servers + max_spare_servers) / 2.
-
pm.min_spare_servers
int
-
Número mínimo de procesos en reposo (idle) deseados. Utilizado solo si
pm
está ajustado a dynamic
. Obligatorio en
este caso.
-
pm.max_spare_servers
int
-
Número máximo de procesos en reposo (idle) deseados. Utilizado solo si
pm
está ajustado a dynamic
. Obligatorio en
este caso.
-
pm.max_spawn_rate
int
-
Número máximo de tasa de generación de procesos hijos simultáneos. Utilizado solo si
pm
está definido a dynamic
.
-
pm.process_idle_timeout
mixed
-
Número de segundos después de los cuales un proceso inactivo será eliminado.
Utilizado únicamente cuando pm
está definido a
ondemand
.
Unidades disponibles: s (segundos)(por omisión), m (minutos), h (hora), o d (día).
Valor por omisión: 10s.
-
pm.max_requests
int
-
Número de peticiones que cada proceso hijo debería ejecutar antes de renacer.
Esto puede ser útil para evitar fugas de memoria en bibliotecas de terceros.
Para un tratamiento sin fin de las peticiones, especifique '0'. Equivalente a
PHP_FCGI_MAX_REQUESTS. Por omisión: 0.
-
pm.status_listen
string
-
La dirección en la que aceptar la petición de estado FastCGI. Esto crea un nuevo pool invisible
que puede tratar las peticiones de manera independiente. Esto es útil si el pool principal está ocupado por peticiones de larga duración ya que siempre es posible
obtener el estado
página de estado de FPM mientras no se hayan terminado.
La sintaxis es la misma que para la directiva listen.
Valor por omisión: none.
-
pm.status_path
string
-
El URI hacia la página de estado de FPM.
Este valor debe comenzar con una barra oblicua (/). Si este valor no está definido,
ningún URI será reconocido como una página de estado. Valor por omisión: none.
-
ping.path
string
-
El URI de ping para llamar a la página de monitoreo de FPM. Si no se especifica ningún valor,
ninguna página de ping estará disponible. Esto podría ser utilizado para probar desde el exterior
si FPM está aún disponible y listo para responder. Note que el valor debe comenzar con una
barra oblicua (/).
-
ping.response
string
-
Esta directiva es útil para personalizar la respuesta a una petición de ping.
La respuesta está formateada como text/plain con un código de respuesta de 200.
Valor por omisión: pong.
-
process.priority
int
-
Especifica la prioridad nice(2) a aplicar al proceso de trabajo
(solo si está definido). El valor puede variar de -19 (prioridad
más alta) a 20 (prioridad más baja). Valor por
omisión: no definido.
-
process.dumpable
bool
-
Define el indicador de proceso dumpable (PR_SET_DUMPABLE prctl) incluso si el usuario o el grupo de procesos es diferente de
el usuario del proceso maestro. Permite crear un core dump del proceso y ptrace el proceso para el usuario del pool. Valor por omisión: no. Desde PHP 7.0.29, 7.1.17 y 7.2.5.
-
prefix
string
-
Especifica el prefijo para la evaluación del camino
-
request_terminate_timeout_track_finished
bool
-
El timeout definido por
request_terminate_timeout no se compromete
después de un fastcgi_finish_request o
cuando la aplicación ha terminado y las funciones internas de parada son llamadas. Esta directiva
permite aplicar el límite de tiempo sin condición.
Valor por omisión: no. A partir de PHP 7.3.0.
-
request_terminate_timeout
mixed
-
El timeout para servir una petición después del cual el proceso concernido será
eliminado. Esta opción debería ser utilizada cuando la opción 'max_execution_time'
no detiene la ejecución del script por alguna razón.
Un valor de '0' significa
'Off'. Unidades disponibles: s(econdes)(por omisión), m(inutes), h(eures), o d(ays).
Por omisión: 0.
-
request_slowlog_timeout
mixed
-
El timeout para servir una petición en la cual la backtrace PHP será volcada
en el fichero 'slowlog'. Un valor de '0' significa 'Off'.
Unidades disponibles: s(econdes)(por omisión), m(inutes), h(eures), o d(ays).
Por omisión: 0.
-
request_slowlog_trace_depth
int
-
El nivel de profundidad de la traza de la pila de log slowlog.
Valor por omisión: 20. A partir de PHP 7.2.0.
-
slowlog
string
-
El registro para las peticiones lentas, por omisión:
#INSTALL_PREFIX#/log/php-fpm.log.slow
.
-
rlimit_files
int
-
Afecta la rlimit para los descriptores de ficheros abiertos de los procesos
hijos de este pool. Valor por omisión: valor del sistema.
-
rlimit_core
int
-
Afecta la talla máxima de rlimit de los procesos hijos de este pool.
Valores posibles: 'unlimited' o un entero mayor o igual a 0.
Valor por omisión: valor definido por el sistema.
-
chroot
string
-
Chroot hacia este directorio al inicio. Este valor debe ser una ruta absoluta.
Si este valor no está definido, chroot no se utiliza.
-
chdir
string
-
Chdir hacia este directorio al inicio. Este valor debe ser una ruta absoluta.
Valor por omisión: directorio actual o / si chroot.
-
catch_workers_output
bool
-
Redirige stdout y stderr hacia el registro de errores principal. Si no se especifica,
stdout y stderr serán redirigidos hacia /dev/null según las especificaciones FastCGI.
Valor por omisión: no.
-
decorate_workers_output
bool
-
Activa la decoración de salida para los trabajadores de salida cuando
catch_workers_output está activado.
Valor por omisión: yes.
Disponible a partir de PHP 7.3.0.
-
clear_env
bool
-
Limpia el entorno de los agentes FPM.
Evita que variables de entorno arbitrarias puedan
alcanzar los procesos FPM limpiando el entorno
de estos agentes antes de que las variables de entorno especificadas
en la configuración del pool sean añadidas.
-
security.limit_extensions
string
-
Limita las extensiones que el script principal FPM va a ser autorizado a analizar.
Esto puede evitar errores de configuración del lado del servidor.
Puede limitar FPM a ejecutar solo las extensiones .php para evitar que usuarios maliciosos utilicen otras extensiones para ejecutar código.
Valor por omisión: .php .phar
-
apparmor_hat
string
-
Si AppArmor está activado, permite cambiar un hat (sombrero).
Valor por omisión: no definido
-
access.log
string
-
El fichero de registro de acceso. Valor por omisión: no definido
-
access.format
string
-
El formato del registro de acceso.
Valor por omisión: "%R - %u %t \"%m %r\" %s"
:
Es posible pasar variables de entorno adicionales y actualizar los parámetros
de PHP de un pool. Para ello, debe añadir las opciones siguientes al
fichero de configuración de la cola de espera.