PHP-FPM-tilan käyttöönotto ja seuranta Nginxissä


PHP-FPM (FastCGI Process Manager) on vaihtoehtoinen PHP FastCGI -toteutus, joka sisältää useita lisäominaisuuksia, jotka ovat hyödyllisiä kaikenkokoisille verkkosivustoille. erityisesti sivustot, jotka saavat paljon liikennettä.

Sitä käytetään yleisesti LEMP (Linux Nginx MySQL/MariaDB PHP) -pinossa; Nginx käyttää PHP FastCGI:tä dynaamisen HTTP-sisällön tarjoamiseen verkossa. Sitä käytetään palvelemaan miljoonia PHP-pyyntöjä sadoille verkkosivustoille Internetin web-palvelimilla.

Lue myös: NGINX-tilasivun käyttöönotto

Yksi php-fpm:n hyödyllisistä ominaisuuksista on sisäänrakennettu tilasivu, jonka avulla voit seurata sen tilaa. Tässä artikkelissa näytämme, kuinka PHP-FPM-tilasivu otetaan käyttöön Linuxissa.

Kuinka ottaa PHP-FPM-tilasivu käyttöön Linuxissa

Avaa ensin php-fpm-määritystiedosto ja ota tilasivu käyttöön kuvan mukaisesti.

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

Etsi tästä tiedostosta muuttuja pm.status_path=/status ja poista kommentit kuvakaappauksen mukaisesti.

Tallenna muutokset ja poistu tiedostosta.

Tarkista seuraavaksi, että PHP-FPM-määritystiedostossa ei ole virheitä suorittamalla alla oleva komento.

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

Käynnistä sitten PHP-FPM-palvelu uudelleen ottaaksesi viimeaikaiset muutokset käyttöön.

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

Muokkaa seuraavaksi oletusarvoista palvelinlohkoa (virtuaalipalvelin) ja lisää siihen alla oleva sijaintilohko. Esimerkiksi testijärjestelmässä oletuspalvelinlohkon konfiguraatiotiedosto on /etc/nginx/conf.d/default.conf sivustolle test.lab.

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

Tässä on lisättävä sijaintilohko. Tässä konfiguraatiossa olemme sallineet pääsyn vain PHP-FPM-prosessin tilaan paikallispalvelimessa käyttämällä ohjetta allow 127.0.0.1 turvallisuussyistä.

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

Tallenna tiedosto ja sulje se.

Käynnistä sitten Nginx-palvelin uudelleen ottaaksesi käyttöön yllä olevat muutokset.

sudo systemctl restart nginx

Avaa nyt selain ja kirjoita URL-osoite http://test.lab/status nähdäksesi PHP-FPM-prosessisi tilan.

Vaihtoehtoisesti voit käyttää curl-ohjelmaa seuraavasti, jossa -L-lippu määrittää sivun sijainnin.

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

Oletusarvoisesti tilasivu tulostaa vain yhteenvedon tai lyhyen tilan. Jos haluat tarkastella kunkin pooliprosessin tilaa, kirjoita kyselymerkkijonoon "full", esimerkiksi:

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

Voit määrittää tulostusmuodon (JSON, HTML tai XML) kuvan mukaisesti.

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

Alla on arvot, jotka palautetaan php-fpm täydessä tilassa jokaiselle prosessille:

  • pid – prosessin PID.
  • tila prosessin tila (joutokäynti, käynnissä jne.).
  • aloitusaika – päivämäärä ja kellonaika, jolloin prosessi on alkanut.
  • aloitus alkaen – sekuntimäärä prosessin alkamisesta.
  • pyynnöt – prosessin toimittamien pyyntöjen määrä.
  • pyynnön kesto – pyyntöjen kesto µs.
  • pyyntötapa – pyyntömenetelmä (GET, POST jne.).
  • Request URI – Pyydä URI kyselymerkkijonolla.
  • sisällön pituus – pyynnön sisällön pituus (vain POST-testillä).
  • käyttäjä – käyttäjä (PHP_AUTH_USER) (tai "-", jos sitä ei ole asetettu).
  • script – pääskripti kutsutaan (tai "-", jos sitä ei ole asetettu).
  • viimeinen pyyntö suoritin – %cpu viimeksi käytetty pyyntö (huomaa, että se on aina 0, jos prosessi ei ole lepotilassa).
  • viimeisen pyynnön muisti – viimeisen pyynnön käyttämä muistin enimmäismäärä (se on aina 0, jos prosessi ei ole lepotilassa).

Siinä se toistaiseksi! Tässä artikkelissa olemme selittäneet, kuinka php-fpm-tilasivu otetaan käyttöön Nginx-verkkopalvelimessa. Käytä alla olevaa palautelomaketta jakaa ajatuksesi kanssamme.