Hvordan aktivere og overvåke PHP-FPM-status i Nginx


PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering som kommer med en rekke ekstra funksjoner som er nyttige for nettsteder av alle størrelser, spesielt nettsteder som mottar høy trafikk.

Det er ofte brukt i LEMP (Linux Nginx MySQL/MariaDB PHP)-stabelen; Nginx bruker PHP FastCGI for å levere dynamisk HTTP-innhold på et nettverk. Den brukes til å betjene millioner av PHP-forespørsler for hundrevis av nettsteder på nettservere på internett.

Les også: Slik aktiverer du NGINX-statusside

En av de nyttige funksjonene til php-fpm er den innebygde statussiden, som kan hjelpe deg med å overvåke helsen. I denne artikkelen vil vi vise hvordan du aktiverer PHP-FPM-statussiden på Linux.

Slik aktiverer du PHP-FPM-statusside i Linux

Åpne først php-fpm-konfigurasjonsfilen 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

Inne i denne filen, finn og fjern kommentaren til variabelen pm.status_path=/status som vist på skjermbildet.

Lagre endringene og avslutt filen.

Deretter kontrollerer du at PHP-FPM-konfigurasjonsfilen for eventuelle feil ved å kjøre kommandoen nedenfor.

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

Start deretter PHP-FPM-tjenesten på nytt for å bruke de siste endringene.

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

Deretter redigerer du standardkonfigurasjonsfilen for serverblokk (virtuell vert) og legger til plasseringsblokken nedenfor i den. For eksempel på testsystemet er standard serverblokkens konfigurasjonsfil /etc/nginx/conf.d/default.conf, for nettstedet test.lab.

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

Her er plasseringsblokken som skal legges til. I denne konfigurasjonen har vi bare tillatt tilgang til PHP-FPM-prosessstatus i den lokale verten ved å bruke direktivet allow 127.0.0.1 av sikkerhetsgrunner.

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

Lagre filen og lukk den.

Start deretter Nginx-serveren på nytt for å bruke endringene ovenfor.

sudo systemctl restart nginx

Åpne nå en nettleser og skriv inn URL-en http://test.lab/status for å se din PHP-FPM-prosessstatus.

Alternativt kan du bruke curl-programmet som følger, der -L-flagget spesifiserer plasseringen av siden.

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

Som standard skriver statussiden bare ut et sammendrag eller kort status. For å se status for hver gruppeprosess, send “full ” i søkestrengen, for eksempel:

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

Du kan definere utdataformatet (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 verdiene som returneres i php-fpm full status, for hver prosess:

  • pid – PID for prosessen.
  • tilstand prosessstatus (inaktiv, kjører osv.).
  • starttid – dato og klokkeslett prosessen har startet.
  • start siden – antall sekunder siden prosessen startet.
  • forespørsler – antall forespørsler prosessen har levert.
  • forespørselsvarighet – varighet i µs av forespørslene.
  • forespørselsmetode – forespørselsmetode (GET, POST osv.).
  • forespørsels-URI – be om URI med søkestrengen.
  • innholdslengde – innholdslengden på forespørselen (bare med POST).
  • bruker – bruker (PHP_AUTH_USER) (eller '-' hvis ikke angitt).
  • skript – hovedskript kalt (eller '-' hvis ikke angitt).
  • siste forespørsel cpu – %cpu den siste forespørselen som ble forbrukt (merk at den alltid er 0 hvis prosessen ikke er i inaktiv tilstand).
  • minne for siste forespørsel – maksimal mengde minne den siste forespørselen forbrukte (det er alltid 0 hvis prosessen ikke er i inaktiv tilstand).

Det var det for nå! I denne artikkelen har vi forklart hvordan du aktiverer php-fpm-statussiden under Nginx-nettserveren. Bruk tilbakemeldingsskjemaet nedenfor for å dele tankene dine med oss.