Artikkelkatalog
Er alt i orden når serveren kjører? I PHP-FPM-verdenen er det faktisk konfigurasjonsfilen som er den virkelige hjernen som avgjør om nettstedet kan kjøre stabilt, sikkert og effektivt.
Hva er prosesspoolkonfigurasjonen for PHP-FPM?
PHP-FPM (FastCGI Process Manager) er en prosessbehandler for PHP som bruker konseptet «pools» for å administrere PHP-prosesser for forskjellige nettsteder eller applikasjoner.
Hver .conf Filen er en pooldefinisjon som spesifiserer viktige parametere som brukeren prosessen kjører på, porten eller sokkelen den lytter på, loggbanen og antall prosesser.
Med andre ord, disse filene er som «kloner» for serveren din, slik at forskjellige nettsteder kan kjøre uavhengig uten å forstyrre hverandre.

www.conf: Standard prosesspool
Etter installasjon av PHP-FPM vil systemet automatisk generere en www.conf fil.
Funksjonen er å tilby et standardbasseng som fungerer rett ut av boksen, vanligvis kjører i... www-data Bruker.
Dette utvalget er egnet for miljøer med ett enkelt sted, er enkelt å konfigurere, og de fleste parameterne er generiske verdier, for eksempel:
user = www-datagroup = www-datalisten = /run/php/php8.3-fpm.sockpm.max_children = 5
Hvis du bare kjører på ett nettsted, er dette tilstrekkelig.
etufo.org.conf: Tilpasset nettstedspool
Når du har flere nettsteder, må du opprette en separat pool for hvert nettsted.
For eksempel etufo.org.confDet er spesielt for domenenavn. etufo. Org Eksklusiv konfigurasjon.
Vanlig praksis er:
- Spesifiser forskjellige brukere og grupper, for eksempel
user = etufo,group = etufo - Konfigurer en separat lytteport eller -sokkel, for eksempel
listen = /run/php/etufo.sock - Juster antall prosesser for å sikre nettstedets stabilitet under høy samtidighet.
- Uavhengige loggfiler forenkler feilsøking.
Fordelen med denne tilnærmingen er sikkerhetsisolering: selv om ett nettsted blir angrepet, vil ikke andre nettsteder bli påvirket.
dummy.conf: Eksempel- eller plassholderfil
dummy.conf Dette er vanligvis maler eller eksempler levert av systemet.
Den vil ikke bli aktivert med mindre du endrer og aktiverer den manuelt.
Hensikten er å gi deg en referanse og vise deg hvordan du skriver en ny pool-konfigurasjon.
Derfor er det mer som en "bruksanvisning" enn en faktisk konfigurasjon for drift.
Hvorfor bruke flere poolfiler?
- 安全 性Ulike nettsteder bør drives av forskjellige brukere for å unngå overlappende tillatelser.
- 性能优化Antall prosesser kan angis individuelt for hver pool og justeres i henhold til trafikkbehovet.
- IsoleringLogger, feilutdata og lytteporter er alle atskilt, noe som gjør feilsøking enklere.
For eksempel, hvis www.conf Den kollapset.etufo.org.conf Den kan fortsatt kjøre normalt og vil ikke ødelegge hele serveren.
Ekte applikasjonsscenarier
- Server på én sideBruk kun
www.confDet er nok. - FlerstedsserverBygg én for hvert nettsted
.confFiler, som for eksempeletufo.org.conf. - dummy.confKun for referanse, ikke anbefalt.
Eksempel på konfigurasjonssammenligning
www.conf (standardpool)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (Tilpasset 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
Du vil oppdage at forskjellen ligger i brukeren, lytteadressen og antall prosesser.
Justering av PHP-FPM prosesspoolparametere
Hvis konfigurasjonen bruker dynamiskDette er en metode for å forhåndsstarte noen arbeidsprosesser og dynamisk justere dem i henhold til forespørselsvolumet, noe som kan reagere raskere når forespørselsvolumet plutselig øker.
For nettsteder med en viss mengde trafikk anbefales det å bruke pm = dynamicFordi den kan opprettholde en viss mengde inaktive prosesser og unngå 500 feil under høy samtidighet.
Det anbefales å bare bruke det når tilgangsvolumet er ekstremt lavt og minneressursene er knappe. pm = ondemand For å spare ressurser.
Det anbefales å endre den til dynamisk og optimalisere den. pm.max_children Og andre parametere:
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 后自动退出
Denne konfigurasjonen sikrer ytelse samtidig som den unngår ressurssløsing.
For detaljerte konfigurasjonsinstruksjoner, se følgende veiledning ▼
I følge den offisielle PHP-dokumentasjonen:
«Hvert basseng kan konfigureres uavhengig, noe som gir mulighet for forskjellige brukere, grenser og innstillinger per applikasjon.»
Denne uttalelsen peker tydelig på betydningen av konfigurasjon med flere pools: uavhengighet, fleksibilitet og kontrollerbarhet.
Konklusjon: Mitt synspunkt
Serverkonfigurasjon er som en dirigent i et orkester, som bestemmer hvordan hvert instrument skal spilles.
www.conf Det er standarddirigenten, egnet for soloopptredener;etufo.org.conf Det er en dirigent som er skreddersydd for en spesifikk scene; og dummy.conf Det er et utkast til musikalske partiturer, som minner deg om hvordan du skriver nye melodier.
I en tid med fokus på informasjonssikkerhet og ytelsesoptimalisering, er det viktig å vite hvordan man bruker disse konfigurasjonsfilene riktig for å kontrollere en servers livslinje.
Konfigurasjon er ikke bare triviell tekst; det er sjelen til en server.
Hvis du operererWordPressFor applikasjoner med flere nettsteder anbefaler vi på det sterkeste at du umiddelbart sjekker og optimaliserer disse poolfilene, spesielt innstillingene for prosesspoolparametere, for å gjøre serveren din virkelig bunnsolid.
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ Artikkelen «Forskjeller og optimaliseringsteknikker i PHP-FPM /etc/php/8.3/fpm/pool.d/-konfigurasjonsfilen» som deles her, kan være nyttig for deg.
Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-33845.html

