Nginx-de PHP-FPM ýagdaýyny nädip işletmeli we gözegçilikde saklamaly


PHP-FPM (FastCGI Prosess Dolandyryjysy), islendik ululykdaky web sahypalary, esasanam ýokary traffigi alýan saýtlar üçin peýdaly birnäçe goşmaça aýratynlyklar bilen üpjün edilýän alternatiw PHP FastCGI durmuşa geçirişidir.

Adatça LEMP (Linux Nginx MySQL/MariaDB PHP) stakasynda ulanylýar; Nginx, torda dinamiki HTTP mazmunyna hyzmat etmek üçin PHP FastCGI ulanýar. Internetdäki web serwerlerindäki ýüzlerçe web sahypalary üçin millionlarça PHP haýyşlaryna hyzmat etmek üçin ulanylýar.

Php-fpm-iň peýdaly aýratynlyklaryndan biri, saglygyna gözegçilik edip biljek içerki ýagdaý sahypasydyr. Bu makalada Linux-da PHP-FPM status sahypasyny nädip işletmelidigini görkezeris.

Linux-da PHP-FPM ýagdaý sahypasyny nädip işletmeli

Ilki bilen php-fpm konfigurasiýa faýlyny açyň we görkezilişi ýaly ýagdaý sahypasyny açyň.

$ 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

Bu faýlyň içinde, skrinshotda görkezilişi ýaly pm.status_path =/status üýtgeýjisini tapyň we çykaryň.

Üýtgeşmeleri ýazdyryň we faýldan çykyň.

Ondan soň, aşakdaky buýrugy işledip, haýsydyr bir ýalňyşlyk üçin PHP-FPM konfigurasiýa faýlyny barlaň.

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

Soňky üýtgeşmeleri ulanmak üçin PHP-FPM hyzmatyny täzeden açyň.

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

Ondan soň, deslapky serwer blokyňyzy (wirtual host) konfigurasiýa faýlyňyzy redaktirläň we aşakdaky ýerleşiş blokyny goşuň. Mysal üçin, synag ulgamynda, test.lab sahypasy üçin deslapky serwer blokynyň konfigurasiýa faýly /etc/nginx/conf.d/default.conf.

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

Ine, goşulmaly ýer bloky. Bu sazlamada, diňe howpsuzlyk sebäpli 127.0.0.1 rugsatnamasyny ulanyp, ýerlihostyň içinde PHP-FPM proses ýagdaýyna girmäge rugsat berdik.

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

Faýly ýazdyryň we ýapyň.

Soňra ýokardaky üýtgeşmeleri ulanmak üçin Nginx serwerini täzeden açyň.

$ sudo systemctl restart nginx

Indi brauzer açyň we PHP-FPM amal ýagdaýyňyzy görmek üçin URL http://test.lab/status ýazyň.

Ativea-da bolmasa, -L baýdagy sahypanyň ýerleşýän ýerini görkezýän ýerinde egri programmany aşakdaky ýaly ulanyň.

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

Düzgüne görä, sahypa sahypasy diňe gysgaça mazmuny ýa-da gysga ýagdaýy çap edýär. Her bir howuz amalynyň ýagdaýyny görmek üçin talap setirinde\doly geçiň, mysal üçin:

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

Çykyş formatyny (JSON, HTML ýa-da XML) görkezilişi ýaly kesgitläp bilersiňiz.

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

Aşakda her bir amal üçin php-fpm doly ýagdaýynda yzyna gaýtarylan bahalar:

  • pid - prosesiň PID.
  • döwlet işiniň ýagdaýy (boş, işlemek we ş.m.).
  • başlangyç wagty - prosesiň başlanan senesi we wagty.
  • başlamaly - proses başlany bäri sekunt sany.
  • haýyşlar - ýerine ýetirilen haýyşlaryň sany.
  • haýyşyň dowamlylygy - haýyşlaryň dowamlylygy.
  • haýyş usuly - haýyş usuly (GET, POST we ş.m.).
  • URI sora - talap setiri bilen URI sora.
  • mazmunyň uzynlygy - haýyşyň mazmun uzynlygy (diňe POST bilen).
  • ulanyjy - ulanyjy (PHP_AUTH_USER) (ýa-da '-' kesgitlenmedik bolsa).
  • skript - esasy skript (ýa-da '-' kesgitlenmedik bolsa).
  • iň soňky haýyş cpu -% cpu iň soňky haýyş sarp edildi (eger iş boş bolsa, hemişe 0 bolýar).
  • iň soňky haýyş ýady - iň soňky sarp edilen ýadyň iň köp mukdary (eger iş boş bolsa, hemişe 0 bolýar).

Häzirlikçe! Bu makalada, Nginx web serweriniň aşagyndaky php-fpm ýagdaý sahypasyny nädip işletmelidigini düşündirdik. Pikirleriňizi biziň bilen paýlaşmak üçin aşakdaky seslenme formasyny ulanyň.