Verschillen en optimalisatietechnieken in het PHP-FPM-configuratiebestand /etc/php/8.3/fpm/pool.d/

Is alles in orde zodra de server draait? In de wereld van PHP-FPM is het configuratiebestand de ware spil, die bepaalt of de site stabiel, veilig en efficiënt kan draaien.

Wat is de configuratie van de procespool voor PHP-FPM?

PHP-FPM (FastCGI Process Manager) is een procesmanager voor PHP die gebruikmaakt van het concept van "pools" om PHP-processen voor verschillende websites of applicaties te beheren.

Elke .conf Het bestand is een pooldefinitie die belangrijke parameters specificeert, zoals de gebruiker waaronder het proces draait, de poort of socket waarop het luistert, het logpad en het aantal processen.

Met andere woorden, deze bestanden zijn als "klonen" van uw server, waardoor verschillende websites onafhankelijk van elkaar kunnen draaien zonder elkaar te storen.

Verschillen en optimalisatietechnieken in het PHP-FPM-configuratiebestand /etc/php/8.3/fpm/pool.d/

www.conf: De standaard procespool

Na de installatie van PHP-FPM genereert het systeem automatisch een www.conf het dossier.

De functie ervan is het leveren van een standaard pool die direct werkt, meestal draaiend in... www-data Gebruiker.

Deze pool is geschikt voor omgevingen met één locatie, is eenvoudig te configureren en de meeste parameters zijn generieke waarden, zoals:

  • user = www-data
  • group = www-data
  • listen = /run/php/php8.3-fpm.sock
  • pm.max_children = 5

Als je de applicatie slechts op één site gebruikt, is dit voldoende.

etufo.org.conf: Aangepaste sitepool

Als u meerdere locaties hebt, moet u voor elke locatie een aparte pool aanmaken.

zoals etufo.org.confHet is specifiek bedoeld voor domeinnamen. etufo.org Exclusieve configuratie.

De gebruikelijke werkwijze is:

  • Geef verschillende gebruikers en groepen op, bijvoorbeeld user = etufo,group = etufo
  • Configureer bijvoorbeeld een aparte luisterpoort of -socket. listen = /run/php/etufo.sock
  • Pas het aantal processen aan om de stabiliteit van de site te garanderen bij hoge gelijktijdigheid.
  • Onafhankelijke logbestanden vergemakkelijken het oplossen van problemen.

Het voordeel van deze aanpak is de beveiligingsisolatie: zelfs als één site wordt aangevallen, worden andere sites niet beïnvloed.

dummy.conf: Voorbeeld- of plaatsvervangerbestand

dummy.conf Dit zijn meestal sjablonen of voorbeelden die door het systeem worden aangeleverd.

Het wordt pas daadwerkelijk ingeschakeld als u het handmatig wijzigt en activeert.

Het doel hiervan is om u een naslagwerk te bieden en u te laten zien hoe u een nieuwe poolconfiguratie schrijft.

Het is daarom meer een "handleiding" dan een daadwerkelijke configuratie voor gebruik.

Waarom meerdere poolbestanden gebruiken?

  • 安全 性Verschillende websites moeten door verschillende gebruikers worden beheerd om overlappende machtigingen te voorkomen.
  • Ik denk dat dit het geval isHet aantal processen kan voor elke pool afzonderlijk worden ingesteld en aangepast aan de verkeersvraag.
  • IsolatieLogbestanden, foutmeldingen en luisterpoorten zijn allemaal gescheiden, wat het oplossen van problemen vereenvoudigt.

Bijvoorbeeld, als www.conf Het stortte in.etufo.org.conf Het kan gewoon blijven draaien en zal de hele server niet platleggen.

Werkelijke toepassingsscenario's

  • Server voor één locatieAlleen gebruiken www.conf Dat is genoeg.
  • Multisite-server: Maak er één voor elke locatie .conf Bestanden, zoals etufo.org.conf.
  • dummy.confUitsluitend ter referentie, niet aanbevolen.

Voorbeeld van configuratievergelijking

www.conf (standaardpool)

[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5

etufo.org.conf (Aangepaste pool)

[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log

Je zult merken dat het verschil zit in de gebruiker, het luisteradres en het aantal processen.

De parameters van de PHP-FPM-procespool aanpassen

Als de configuratie gebruik maakt van dynamischDit is een methode om bepaalde werkprocessen alvast op te starten en dynamisch aan te passen op basis van het aanvraagvolume. Zo kan er sneller worden gereageerd als het aanvraagvolume plotseling toeneemt.

Voor websites met een bepaalde hoeveelheid verkeer wordt het aanbevolen om pm = dynamicOmdat het een bepaald aantal inactieve processen in stand kan houden en 500 fouten kan vermijden bij hoge gelijktijdigheid.

Het wordt aanbevolen om dit alleen te gebruiken wanneer het toegangsvolume extreem laag is en de geheugenbronnen beperkt zijn. pm = ondemand Om hulpbronnen te besparen.

Het wordt aanbevolen om dit naar een dynamische modus te wijzigen en te optimaliseren. pm.max_children En andere parameters:

pm = dynamic
pm.max_children = 16  ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4   ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2  ; 最小空闲进程数
pm.max_spare_servers = 7  ; 最大空闲进程数
pm.max_requests = 3000    ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s  ; 空闲进程 10s 后自动退出

Deze configuratie garandeert prestaties en voorkomt tegelijkertijd verspilling van resources.

Raadpleeg de volgende handleiding voor gedetailleerde configuratie-instructies ▼

Volgens de officiële PHP-documentatie:

"Elke pool kan onafhankelijk worden geconfigureerd, waardoor per toepassing verschillende gebruikers, limieten en instellingen mogelijk zijn."

Deze verklaring onderstreept duidelijk het belang van een configuratie met meerdere pools: onafhankelijkheid, flexibiliteit en beheersbaarheid.

Conclusie: Mijn standpunt

Serverconfiguratie is als een dirigent in een orkest, die bepaalt hoe elk instrument bespeeld moet worden.

www.conf Het is de standaard dirigent, geschikt voor solo-uitvoeringen;etufo.org.conf Het is een dirigent die speciaal is afgestemd op een bepaald podium; en dummy.conf Het is een concept van muziekpartituren, bedoeld om je eraan te herinneren hoe je nieuwe melodieën kunt schrijven.

In een tijdperk waarin informatiebeveiliging en prestatieoptimalisatie centraal staan, is het essentieel om te weten hoe je deze configuratiebestanden correct gebruikt om de levensader van een server te beheren.

Configuratie is niet zomaar triviale tekst; het is de ziel van een server.

Als u aan het werk benthood.discountVoor applicaties met meerdere locaties raden we ten zeerste aan om deze poolbestanden onmiddellijk te controleren en te optimaliseren, met name de parameterinstellingen van de procespool, om uw server echt ijzersterk te maken.

发表 评论

Uw e-mailadres wordt niet gepubliceerd. 必填 项 已 用 * 标注

Scroll naar boven