Búsqueda de sitios web

Cómo habilitar y monitorear el estado de PHP-FPM en Nginx


PHP-FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI que viene con una serie de funciones adicionales útiles para sitios web de cualquier tamaño. particularmente sitios que reciben mucho tráfico.

Se usa comúnmente en la pila LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx utiliza PHP FastCGI para ofrecer contenido HTTP dinámico en una red. Se utiliza para atender millones de solicitudes PHP para cientos de sitios web en servidores web de Internet.

Leer también: Cómo habilitar la página de estado de NGINX

Una de las funciones útiles de php-fpm es la página de estado integrada, que puede ayudarte a controlar su estado. En este artículo, mostraremos cómo habilitar la página de estado PHP-FPM en Linux.

Cómo habilitar la página de estado PHP-FPM en Linux

Primero abra el archivo de configuración php-fpm y habilite la página de estado como se muestra.

sudo vim /etc/php-fpm.d/www.conf 
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf	#for PHP versions 5.6, 7.0, 7.1

Dentro de este archivo, busque y descomente la variable pm.status_path=/status como se muestra en la captura de pantalla.

Guarde los cambios y salga del archivo.

A continuación, verifique que el archivo de configuración PHP-FPM no tenga errores ejecutando el siguiente comando.

sudo php-fpm -t
OR
sudo php7.2-fpm -t

Luego reinicie el servicio PHP-FPM para aplicar los cambios recientes.

sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm

A continuación, edite su archivo de configuración predeterminado del bloque de servidor (host virtual) y agregue el bloque de ubicación a continuación. Por ejemplo, en el sistema de prueba, el archivo de configuración del bloque de servidor predeterminado es /etc/nginx/conf.d/default.conf, para el sitio test.lab.

sudo vim /etc/nginx/conf.d/default.conf 

Aquí está el bloque de ubicación que se agregará. En esta configuración, solo hemos permitido el acceso al estado del proceso PHP-FPM dentro del host local usando la directiva allow 127.0.0.1 por razones de seguridad.

location ~ ^/(status|ping)$ {
        allow 127.0.0.1;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php7.2-fpm.sock;
}

Guarde el archivo y ciérrelo.

Luego reinicie el servidor Nginx para aplicar los cambios anteriores.

sudo systemctl restart nginx

Ahora abra un navegador y escriba la URL http://test.lab/status para ver el estado de su proceso PHP-FPM.

Alternativamente, use el programa curl de la siguiente manera, donde el indicador -L especifica la ubicación de la página.

curl -L http://test.lab/status

De forma predeterminada, la página de estado solo imprime un resumen o un estado breve. Para ver el estado de cada proceso del grupo, pase “completo” en la cadena de consulta, por ejemplo:

http://www.foo.bar/status?full

Puede definir el formato de salida (JSON, HTML o XML) como se muestra.

http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full

A continuación se muestran los valores devueltos en el estado completo php-fpm, para cada proceso:

  • pid – PID del proceso.
  • estado estado del proceso (inactivo, en ejecución, etc.).
  • hora de inicio: fecha y hora en que comenzó el proceso.
  • iniciar desde: número de segundos desde que comenzó el proceso.
  • solicitudes: número de solicitudes que ha atendido el proceso.
  • duración de la solicitud: duración en µs de las solicitudes.
  • método de solicitud – método de solicitud (GET, POST, etc.).
  • solicitar URI: solicitar URI con la cadena de consulta.
  • longitud del contenido: longitud del contenido de la solicitud (solo con POST).
  • usuario – usuario (PHP_AUTH_USER) (o '-' si no está configurado).
  • script: script principal llamado (o '-' si no está configurado).
  • última solicitud de CPU: % de CPU consumida por la última solicitud (tenga en cuenta que siempre es 0 si el proceso no está en estado inactivo).
  • memoria de la última solicitud: cantidad máxima de memoria consumida por la última solicitud (siempre es 0 si el proceso no está en estado inactivo).

¡Eso es todo por ahora! En este artículo, explicamos cómo habilitar la página de estado php-fpm en el servidor web Nginx. Utilice el formulario de comentarios a continuación para compartir sus pensamientos con nosotros.