Sådan aktiveres og overvåges PHP-FPM-status i Nginx


PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering, der kommer med en række ekstra funktioner, der er nyttige til websteder af enhver størrelse, især websteder, der modtager høj trafik.

Det bruges almindeligvis i LEMP-stakken (Linux Nginx MySQL/MariaDB PHP); Nginx bruger PHP FastCGI til servering af dynamisk HTTP-indhold på et netværk. Det bruges til at betjene millioner af PHP-anmodninger om hundredvis af websteder på webservere på internettet.

En af de nyttige funktioner i php-fpm er den indbyggede statusside, som kan hjælpe dig med at overvåge dens helbred. I denne artikel viser vi, hvordan du aktiverer PHP-FPM-statussiden på Linux.

Sådan aktiveres PHP-FPM-statusside i Linux

Åbn først php-fpm-konfigurationsfilen, og aktiver statussiden som vist.

$ 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

Inde i denne fil skal du finde og fjerne kommentar til variablen pm.status_path =/status som vist på skærmbilledet.

Gem ændringerne, og afslut filen.

Kontroller derefter, at PHP-FPM-konfigurationsfilen for eventuelle fejl ved at køre kommandoen nedenfor.

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

Genstart derefter PHP-FPM-tjenesten for at anvende de seneste ændringer.

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

Derefter skal du redigere din standardserverblok (virtuelle vært) konfigurationsfil og tilføje placeringsblokken nedenfor i den. For eksempel på testsystemet er standardserverblokens konfigurationsfil /etc/nginx/conf.d/default.conf til webstedet test.lab.

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

Her er placeringsblokken, der skal tilføjes. I denne konfiguration har vi kun tilladt adgang til PHP-FPM-processtatus i localhost ved hjælp af direktivet tillad 127.0.0.1 af sikkerhedsmæssige årsager.

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;
}

Gem filen, og luk den.

Genstart derefter Nginx-serveren for at anvende ovenstående ændringer.

$ sudo systemctl restart nginx

Åbn nu en browser, og skriv URL http: //test.lab/status for at få vist din PHP-FPM-processtatus.

Alternativt kan du bruge krølleprogrammet som følger, hvor flag -L angiver placeringen af siden.

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

Som standard udskriver statussiden kun en oversigt eller en kort status. For at se status for hver poolproces skal du sende "fuld" i forespørgselsstrengen, for eksempel:

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

Du kan definere outputformatet (JSON, HTML eller XML) som vist.

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

Nedenfor er værdierne returneret i php-fpm fuld status for hver proces:

  • pid - PID for processen.
  • statusprocesstatus (inaktiv, kører osv.).
  • starttid - dato og tidspunkt, hvor processen er startet.
  • start siden - antal sekunder siden processen er startet.
  • anmodninger - antal anmodninger, processen har leveret.
  • anmodningens varighed - varighed i µs af anmodningerne.
  • anmodningsmetode - anmodningsmetode (GET, POST osv.).
  • anmodning URI - anmod URI med forespørgselsstrengen.
  • indholdslængde - anmodningens indholdslængde (kun med POST).
  • bruger - bruger (PHP_AUTH_USER) (eller ‘-‘ hvis ikke angivet).
  • script - hovedscript kaldet (eller ‘-‘ hvis ikke indstillet).
  • cpu sidste anmodning -% cpu den sidste forbrugte anmodning (bemærk, at den altid er 0, hvis processen ikke er i inaktiv tilstand).
  • hukommelse for sidste anmodning - maks. hukommelsesmængde den sidste forbrugte anmodning (det er altid 0, hvis processen ikke er i inaktiv tilstand).

Det er det for nu! I denne artikel har vi forklaret, hvordan du aktiverer php-fpm-statussiden under Nginx-webserveren. Brug feedbackformularen nedenfor til at dele dine tanker med os.