Kuidas seadistada NGINX-is eraldi PHP-FPM-i basseine
Avaldatud: 15. veebruar 2025, kell 11:49:34 UTC
Selles artiklis käsitlen konfiguratsioonietappe, mis on vajalikud mitme PHP-FPM-i kogumi käitamiseks ja NGINX-i ühendamiseks nendega FastCGI kaudu, võimaldades protsesside eraldamist ja isoleerimist virtuaalsete hostide vahel.
How to Set Up Separate PHP-FPM Pools in NGINX
Selles postituses olev teave põhineb versioonidel NGINX 1.4.6 ja PHP-FPM 5.5.9, mis töötavad Ubuntu Server 14.04 x64. See võib teiste versioonide jaoks kehtida, kuid ei pruugi kehtida. (Värskendus: võin kinnitada, et alates Ubuntu Server 24.04, PHP-FPM 8.3 ja NGINX 1.24.0 seisuga töötavad kõik selles postituses olevad juhised endiselt)
Mitme PHP-FPM-i alamprotsesside kogumi seadistamisel on mitmeid eeliseid, selle asemel, et käitada kõike samas kogumis. Turvalisus, eraldamine/isolatsioon ja ressursside haldamine tulevad meelde kui mõned olulised.
Olenemata sellest, mis on teie motivatsioon, aitab see postitus teil seda teha :-)
1. osa – uue PHP-FPM basseini seadistamine
Esiteks peate leidma kataloogi, kuhu PHP-FPM oma basseini konfiguratsioonid salvestab. Ubuntu 14.04 puhul on see vaikimisi /etc/php5/fpm/pool.d. Tõenäoliselt on seal juba fail nimega www.conf , mis sisaldab vaikekogumi konfiguratsiooni. Kui te pole seda faili varem vaadanud, peaksite tõenäoliselt selle läbi vaatama ja selles olevaid seadistusi oma seadistuste jaoks kohandama, kuna vaikeseaded on üsna nõrga võimsusega serveri jaoks, kuid praegu tehke sellest lihtsalt koopia, et me ei peaks nullist alustama:
Muidugi asendage "mypool" sellega, mida soovite oma basseini nimetada.
Nüüd avage uus fail nano või mis tahes eelistatud tekstiredaktoriga ja kohandage seda vastavalt oma eesmärgile. Tõenäoliselt soovite kohandada alamprotsesside numbreid ja võib-olla ka seda, millise kasutaja ja rühma all bassein töötab, kuid kaks seadet, mida peate kindlasti muutma, on basseini nimi ja pesa, mida see kuulab, vastasel juhul läheb see olemasoleva puuliga vastuollu ja asjad lakkavad töötamast.
Basseini nimi on faili ülaosas nurksulgudes. Vaikimisi on see [www] . Muutke see, mida iganes soovite; Pakun välja sama, mille konfiguratsioonifailile nimetasite, nii et selle näite huvides muutke see väärtuseks [mypool] . Kui te seda ei muuda, tundub, et PHP-FPM laadib selle nimega ainult esimese konfiguratsioonifaili, mis tõenäoliselt rikub asju.
Seejärel peate muutma kuulatavat pesa või aadressi, mis on määratletud kuulamisjuhisega . Vaikimisi kasutab PHP-FPM Unixi pesasid, nii et teie kuulamisdirektiiv näeb tõenäoliselt välja järgmine:
Saate selle muuta mis tahes kehtivaks nimeks, mida soovite, kuid jällegi soovitan jääda millegi sarnase konfiguratsioonifaili nime juurde, et saaksite selle näiteks määrata:
Olgu, salvestage fail ja väljuge tekstiredaktorist.
2. osa – NGINX-i virtuaalse hosti konfiguratsiooni värskendamine
Nüüd peate avama NGINX-i virtuaalse hostifaili FastCGI-konfiguratsiooniga, mida soovite muuta uueks basseiniks – või õigemini looge ühendus uue pesaga.
Ubuntu 14.04 vaikimisi salvestatakse need kausta /etc/nginx/sites-available, kuid neid saab määratleda ka mujal. Tõenäoliselt teate kõige paremini, kus teie virtuaalse hosti konfiguratsioonid asuvad ;-)
Avage oma lemmiktekstiredaktoris vastav konfiguratsioonifail ja otsige käsk fastcgi_pass (mis peab olema asukoha kontekstis), mis määratleb PHP-FPM pesa. Peate seda väärtust muutma nii, et see vastaks uuele PHP-FPM-i kogumi konfiguratsioonile, mille tegite esimese sammu käigus, nii et jätkates meie näidet, muudate selle järgmiselt:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Seejärel salvestage ja sulgege ka see fail. Nüüd olete peaaegu valmis.
3. osa – taaskäivitage PHP-FPM ja NGINX
Tehtud konfiguratsioonimuudatuste rakendamiseks taaskäivitage nii PHP-FPM kui ka NGINX. Taaskäivitamise asemel võib piisata uuesti laadimisest , kuid olenevalt sellest, milliseid sätteid muudetakse, tundub, et see on natuke tabanud ja mööda läinud. Konkreetsel juhul tahtsin, et vanad PHP-FPM-i alamprotsessid sureksid kohe välja, seega oli vaja PHP-FPM taaskäivitada, kuid NGINX-i jaoks võib uuesti laadimisest piisata. Proovige seda ise.
sudo service nginx restart
Ja voila, oletegi valmis. Kui tegite kõik õigesti, peaks teie muudetud virtuaalne host nüüd kasutama uut PHP-FPM-i kogumit ega jaga alamprotsesse ühegi teise virtuaalhostiga.