Miklix

Kaip nustatyti atskirus PHP-FPM telkinius NGINX

Paskelbta: 2025 m. vasario 15 d. 11:52:43 UTC
Paskutinį kartą atnaujinta: 2026 m. sausio 12 d. 08:30:01 UTC

Šiame straipsnyje apžvelgsiu konfigūravimo veiksmus, reikalingus norint paleisti kelis PHP-FPM telkinius ir prijungti prie jų NGINX per FastCGI, kad būtų galima atskirti ir izoliuoti procesus tarp virtualių mazgų.


Šis puslapis buvo mašininiu būdu išverstas iš anglų kalbos, kad juo galėtų naudotis kuo daugiau žmonių. Deja, mašininis vertimas dar nėra tobula technologija, todėl gali pasitaikyti klaidų. Jei pageidaujate, originalią versiją anglų kalba galite peržiūrėti čia:

How to Set Up Separate PHP-FPM Pools in NGINX

Šiame įraše pateikta informacija pagrįsta NGINX 1.4.6 ir PHP-FPM 5.5.9 versijomis, veikiančiomis „Ubuntu Server 14.04 x64“ aplinkoje. Ji gali tikti arba netikti kitoms versijoms. (Atnaujinimas: galiu patvirtinti, kad nuo „Ubuntu Server 24.04“, PHP-FPM 8.3 ir NGINX 1.24.0 versijos visos šiame įraše pateiktos instrukcijos vis dar veikia)

Yra daug privalumų sukurti kelis PHP-FPM antrinių procesų telkinius, nei paleisti viską viename telkinyje. Kaip svarbiausi iš jų, į galvą ateina saugumas, atskyrimas/izoliacija ir išteklių valdymas.

Nesvarbu, kokia jūsų motyvacija, šis įrašas padės jums tai padaryti :-)

1 dalis – Sukurkite naują PHP-FPM telkinį

Pirmiausia reikia rasti katalogą, kuriame PHP-FPM saugo savo telkinio konfigūracijas. „Ubuntu 14.04“ sistemoje tai pagal numatytuosius nustatymus yra /etc/php5/fpm/pool.d. Tikriausiai ten jau yra failas pavadinimu www.conf, kuriame saugoma numatytojo telkinio konfigūracija. Jei anksčiau neperžiūrėjote šio failo, tikriausiai turėtumėte jį peržiūrėti ir pakoreguoti nustatymus pagal savo konfigūraciją, nes numatytieji nustatymai skirti gana silpnam serveriui, bet kol kas tiesiog padarykite jo kopiją, kad nereikėtų pradėti nuo nulio:

sudo cp www.conf mypool.conf

Žinoma, „mypool“ pakeiskite tuo, kaip norite, kad vadintųsi jūsų baseinas.

Dabar atidarykite naują failą naudodami „nano“ arba bet kurį kitą jums patinkantį teksto redaktorių ir pakoreguokite jį pagal savo poreikius. Tikriausiai norėsite pakoreguoti antrinių procesų numerius ir galbūt tai, kuriam vartotojui ir grupei priklauso telkinys, tačiau du nustatymai, kuriuos būtinai turite pakeisti, yra telkinio pavadinimas ir lizdas, kurio jis klausosi, kitaip jis konfliktuos su esamu telkiniu ir viskas nustos veikti.

Telkinų grupės pavadinimas yra failo viršuje, laužtiniuose skliaustuose. Pagal numatytuosius nustatymus tai yra [www]. Pakeiskite jį į bet ką; siūlau naudoti tą patį pavadinimą, kaip ir konfigūracijos failą, todėl šiame pavyzdyje pakeiskite jį į [mypool]. Jei jo nepakeisite, atrodo, kad PHP-FPM įkels tik pirmąjį konfigūracijos failą su tuo pavadinimu, o tai greičiausiai sugadins sistemą.

Tada reikia pakeisti klausomą lizdą arba adresą, kuris apibrėžiamas klausymosi direktyvoje. Pagal numatytuosius nustatymus PHP-FPM naudoja „Unix“ lizdus, todėl jūsų klausymosi direktyva tikriausiai atrodys taip:

listen = /var/run/php5-fpm.sock

Galite jį pakeisti bet kokiu norimu galiojančiu pavadinimu, bet vėlgi siūlau laikytis kažko panašaus į konfigūracijos failo pavadinimą, pavyzdžiui, galite jį nustatyti taip:

listen = /var/run/php5-fpm-mypool.sock

Gerai, išsaugokite failą ir uždarykite teksto redaktorių.

2 dalis. Atnaujinkite NGINX virtualiojo serverio konfigūraciją

Dabar reikia atidaryti NGINX virtualiojo serverio failą su „FastCGI“ konfigūracija, kurią norite pakeisti į naują telkinį – arba, tiksliau, prisijungti prie naujo lizdo.

Pagal numatytuosius nustatymus „Ubuntu 14.04“ sistemoje jie saugomi aplanke /etc/nginx/sites-available, bet gali būti apibrėžti ir kitur. Tikriausiai geriausiai žinote, kur yra jūsų virtualiojo serverio konfigūracijos ;-)

Atidarykite atitinkamą konfigūracijos failą mėgstamame teksto redaktoriuje ir ieškokite „fastcgi_pass“ direktyvos (kuri turi būti vietos kontekste), apibrėžiančios PHP-FPM lizdą. Šią reikšmę turite pakeisti taip, kad ji atitiktų naują PHP-FPM telkinio konfigūraciją, kurią atlikote pirmame žingsnyje, taigi, tęsdami mūsų pavyzdį, pakeistumėte ją į:

Fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;

Tada išsaugokite ir uždarykite tą failą. Beveik baigėte.

3 dalis. Paleiskite PHP-FPM ir NGINX iš naujo

Norėdami pritaikyti atliktus konfigūracijos pakeitimus, paleiskite PHP-FPM ir NGINX iš naujo. Gali pakakti perkrovimo, o ne paleidimo iš naujo, bet manau, kad tai šiek tiek netikslu, priklausomai nuo pakeistų nustatymų. Konkrečiu atveju norėjau, kad seni PHP-FPM antriniai procesai iš karto mirtų, todėl reikėjo paleisti PHP-FPM iš naujo, bet NGINX atveju gali pakakti perkrovimo. Išbandykite patys.

sudo service php5-fpm restart
sudo service nginx restart

Ir štai, baigėte. Jei viską atlikote teisingai, modifikuotas virtualus serveris dabar turėtų naudoti naują PHP-FPM telkinį ir nesidalinti antriniais procesais su jokiais kitais virtualiais serveriais.

Pasidalinkite „Bluesky“.Dalintis FacebookBendrinkite „LinkedIn“.Bendrinkite „Tumblr“.Dalintis XBendrinkite „LinkedIn“.Prisegti prie Pinterest

Mikkel Christensen

Apie autorių

Mikkel Christensen
Mikkelis yra miklix.com kūrėjas ir savininkas. Jis turi daugiau nei 20 metų profesionalaus kompiuterių programuotojo ir programinės įrangos kūrėjo patirtį ir šiuo metu visą darbo dieną dirba didelėje Europos IT korporacijoje. Kai jis nerašo tinklaraščio, laisvalaikį skiria įvairiems interesams, pomėgiams ir užsiėmimams, kurie tam tikra prasme gali atsispindėti šioje svetainėje nagrinėjamų temų įvairovėje.