Kā iespējot un uzraudzīt PHP-FPM statusu Nginx


PHP-FPM (FastCGI procesu pārvaldnieks) ir alternatīva PHP FastCGI ieviešana, kurai ir vairākas papildu funkcijas, kas noderīgas jebkura lieluma vietnēm, jo īpaši vietnēm, kurās ir liela trafika.

To parasti lieto LEMP (Linux Nginx MySQL/MariaDB PHP) kaudzē; Nginx izmanto PHP FastCGI dinamiskā HTTP satura apkalpošanai tīklā. To izmanto, lai apkalpotu miljoniem PHP pieprasījumu simtiem vietņu tīmekļa serveros internetā.

Viena no php-fpm noderīgajām funkcijām ir iebūvētā statusa lapa, kas var palīdzēt uzraudzīt tās stāvokli. Šajā rakstā mēs parādīsim, kā iespējot PHP-FPM statusa lapu operētājsistēmā Linux.

Kā iespējot PHP-FPM statusa lapu operētājsistēmā Linux

Vispirms atveriet konfigurācijas failu php-fpm un iespējojiet statusa lapu, kā parādīts.

$ 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

Šī faila iekšpusē atrodiet mainīgo pm.status_path =/status un noņemiet komentāru, kā parādīts ekrānuzņēmumā.

Saglabājiet izmaiņas un izejiet no faila.

Pēc tam pārbaudiet, vai PHP-FPM konfigurācijas failā nav kļūdu, izpildot zemāk esošo komandu.

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

Pēc tam restartējiet pakalpojumu PHP-FPM, lai lietotu pēdējās izmaiņas.

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

Pēc tam rediģējiet noklusējuma servera bloka (virtuālā resursdatora) konfigurācijas failu un pievienojiet tajā atrašanās vietas bloku zemāk. Piemēram, testa sistēmā noklusējuma servera bloka konfigurācijas fails ir /etc/nginx/conf.d/default.conf vietnei test.lab.

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

Šeit ir jāpievieno atrašanās vietas bloks. Šajā konfigurācijā mēs esam atļāvuši piekļuvi tikai PHP-FPM procesa statusam vietējā mitinātājā, izmantojot direktīvu atļaut 127.0.0.1 drošības apsvērumu dēļ.

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

Saglabājiet failu un aizveriet to.

Pēc tam restartējiet Nginx serveri, lai piemērotu iepriekš minētās izmaiņas.

$ sudo systemctl restart nginx

Tagad atveriet pārlūkprogrammu un ierakstiet URL http://test.lab/status , lai skatītu PHP-FPM procesa statusu.

Alternatīvi izmantojiet čokurošanās programmu šādi, kur karodziņš -L norāda lapas atrašanās vietu.

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

Pēc noklusējuma statusa lapā tiek izdrukāts tikai kopsavilkums vai īss statuss. Lai skatītu katra kopas procesa statusu, vaicājuma virknē ievadiet “pilns”, piemēram:

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

Jūs varat definēt izvades formātu (JSON, HTML vai XML), kā parādīts.

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

Tālāk ir norādītas vērtības, kas katram procesam atgrieztas php-fpm pilnā statusā:

  • pid - procesa PID.
  • norādiet procesa statusu (dīkstāvē, darbībā utt.).
  • sākuma laiks - datums un laiks, kad process ir sākts.
  • sākt kopš - sekunžu skaits kopš procesa sākuma.
  • pieprasījumi - procesu izpildīto pieprasījumu skaits.
  • pieprasījuma ilgums - pieprasījumu ilgums μs.
  • pieprasījuma metode - pieprasījuma metode (GET, POST utt.).
  • pieprasīt URI - pieprasīt URI ar vaicājuma virkni.
  • satura garums - pieprasījuma satura garums (tikai ar POST).
  • lietotājs - lietotājs (PHP_AUTH_USER) (vai ‘-’, ja nav iestatīts).
  • skripts - galvenais skripts (vai ‘-’, ja nav iestatīts).
  • pēdējais pieprasījums CPU -% CPU pēdējais patērētais pieprasījums (ņemiet vērā, ka tas vienmēr ir 0, ja process nav gaidīšanas režīmā).
  • pēdējā pieprasījuma atmiņa - maksimālais atmiņas apjoms, ko patērēja pēdējais pieprasījums (tas vienmēr ir 0, ja process nav gaidīšanas režīmā).

Pagaidām tas ir viss! Šajā rakstā mēs esam paskaidrojuši, kā iespējot statusa lapu php-fpm zem Nginx tīmekļa servera. Izmantojiet tālāk sniegto atsauksmju veidlapu, lai dalītos savās domās.