Miklix

Kā iestatīt atsevišķus PHP-FPM baseinus NGINX

Publicēts: 2025. gada 15. februāris 11:52:44 UTC

Šajā rakstā es apskatīšu konfigurācijas darbības, kas nepieciešamas, lai palaistu vairākus PHP-FPM pūlus un savienotu ar tiem NGINX, izmantojot FastCGI, ļaujot nodalīt procesus un izolēt virtuālos saimniekdatorus.


Šī lapa tika mašīntulkota no angļu valodas, lai padarītu to pieejamu pēc iespējas vairāk cilvēkiem. Diemžēl mašīntulkošana vēl nav pilnīga tehnoloģija, tāpēc tajā var rasties kļūdas. Ja vēlaties, oriģinālo versiju angļu valodā varat apskatīt šeit:

How to Set Up Separate PHP-FPM Pools in NGINX

Informācija šajā ziņā ir balstīta uz NGINX 1.4.6 un PHP-FPM 5.5.9, kas darbojas Ubuntu Server 14.04 x64. Tas var būt un var nebūt derīgs citām versijām. (Atjauninājums: varu apstiprināt, ka no Ubuntu Server 24.04, PHP-FPM 8.3 un NGINX 1.24.0 visi šajā ziņojumā sniegtie norādījumi joprojām darbojas)

Vairāku PHP-FPM bērnu procesu pūlu iestatīšanai ir vairākas priekšrocības, nevis visu darbināšanai vienā pūlā. Drošība, nodalīšana/izolācija un resursu pārvaldība ir dažas no galvenajām lietām.

Neatkarīgi no tā, kāda ir jūsu motivācija, šis ieraksts palīdzēs jums to izdarīt :-)


1. daļa — jauna PHP-FPM pūla iestatīšana

Pirmkārt, jums ir jāatrod direktorijs, kurā PHP-FPM saglabā savas pūla konfigurācijas. Ubuntu 14.04 versijā tas pēc noklusējuma ir /etc/php5/fpm/pool.d. Iespējams, ka tur jau ir fails ar nosaukumu www.conf , kurā ir noklusējuma pūla konfigurācija. Ja iepriekš neesat apskatījis šo failu, iespējams, jums vajadzētu to pārskatīt un pielāgot tajā esošos iestatījumus savai iestatījumam, jo ​​noklusējuma iestatījumi ir paredzēti serverim ar nepietiekamu jaudu, taču pagaidām vienkārši izveidojiet tā kopiju, lai mums nebūtu jāsāk no nulles:

sudo cp www.conf mypool.conf

Protams, aizstājiet “mypool” ar to, ko vēlaties, lai jūsu baseins tiktu saukts.

Tagad atveriet jauno failu, izmantojot nano vai citu teksta redaktoru, kuru vēlaties, un pielāgojiet to savam mērķim. Jūs, iespējams, vēlēsities pielāgot bērnprocesa numurus un, iespējams, pie kura lietotāja un grupas baseins darbojas, taču divi iestatījumi, kas jums noteikti ir jāmaina, ir pūla nosaukums un ligzda, kuru tas klausās, pretējā gadījumā tas būs pretrunā ar esošo pūlu un lietas pārstās darboties.

Baseina nosaukums ir faila augšdaļā un ir ievietots kvadrātiekavās. Pēc noklusējuma tas ir [www] . Mainiet to uz visu, ko vēlaties; Es iesaku to pašu, ko nosaucāt konfigurācijas failam, tāpēc šī piemēra labad mainiet to uz [mypool] . Ja jūs to nemaināt, šķiet, ka PHP-FPM ielādēs tikai pirmo konfigurācijas failu ar šādu nosaukumu, kas, visticamāk, sabojās lietas.

Pēc tam jums ir jāmaina ligzda vai adrese, kuru klausāties, ko nosaka klausīšanās direktīva. Pēc noklusējuma PHP-FPM izmanto Unix ligzdas, tāpēc jūsu klausīšanās direktīva, iespējams, izskatīsies šādi:

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

Varat to mainīt uz jebkuru derīgu nosaukumu, kuru vēlaties, taču es iesaku izmantot kaut ko līdzīgu konfigurācijas faila nosaukumam, lai jūs varētu, piemēram, iestatīt to uz:

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

Labi, saglabājiet failu un izejiet no teksta redaktora.


2. daļa — NGINX virtuālā resursdatora konfigurācijas atjaunināšana

Tagad jums ir jāatver NGINX virtuālā resursdatora fails ar FastCGI konfigurāciju, kuru vēlaties mainīt uz jaunu pūlu, vai drīzāk, izveidojiet savienojumu ar jauno ligzdu.

Pēc noklusējuma Ubuntu 14.04 tie tiek glabāti mapē /etc/nginx/sites-available, taču tos var definēt arī citur. Jūs droši vien vislabāk zināt, kur atrodas jūsu virtuālā saimniekdatora konfigurācijas ;-)

Atveriet atbilstošo konfigurācijas failu savā iecienītākajā teksta redaktorā un meklējiet direktīvu fastcgi_pass (tai ir jābūt atrašanās vietas kontekstā), kas nosaka PHP-FPM ligzdu. Jums ir jāmaina šī vērtība, lai tā atbilstu jaunajai PHP-FPM pūla konfigurācijai, ko izveidojāt pirmajā darbībā, tāpēc, turpinot mūsu piemēru, jūs to mainītu uz:

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

Pēc tam saglabājiet un aizveriet arī šo failu. Tagad esat gandrīz pabeidzis.


3. daļa — restartējiet PHP-FPM un NGINX

Lai lietotu veiktās konfigurācijas izmaiņas, restartējiet gan PHP-FPM, gan NGINX. Var pietikt ar atkārtotu ielādi, nevis restartēšanu , taču es uzskatu, ka tas ir nedaudz trāpīts un garām, atkarībā no tā, kādi iestatījumi tiek mainīti. Konkrētajā gadījumā es gribēju, lai vecie PHP-FPM bērnprocesi uzreiz nomirst, tāpēc bija nepieciešama PHP-FPM restartēšana, bet NGINX gadījumā var pietikt ar atkārtotu ielādi. Izmēģiniet to pats.

sudo service php5-fpm restart
sudo service nginx restart

Un voila, esat pabeidzis. Ja visu izdarījāt pareizi, modificētajam virtuālajam resursdatoram tagad vajadzētu izmantot jauno PHP-FPM pūlu, nevis koplietot pakārtotos procesus ar citiem virtuālajiem resursdatoriem.

Kopīgojiet pakalpojumā BlueskyKopīgot FacebookKopīgojiet vietnē LinkedInKopīgojiet vietnē TumblrKopīgot vietnē XKopīgojiet vietnē LinkedInPiespraust vietnē Pinterest

Mikkel Bang Christensen

Par autoru

Mikkel Bang Christensen
Mikels ir miklix.com radītājs un īpašnieks. Viņam ir vairāk nekā 20 gadu pieredze kā profesionālam programmētājam/programmatūras izstrādātājam, un pašlaik viņš strādā pilna laika darbu lielā Eiropas IT korporācijā. Kad viņš neraksta blogus, viņš pavada brīvo laiku, pievēršoties dažādām interesēm, hobijiem un aktivitātēm, kas zināmā mērā var atspoguļoties šajā tīmekļa vietnē aplūkoto tēmu daudzveidībā.