Razlike in tehnike optimizacije v konfiguracijski datoteki PHP-FPM /etc/php/8.3/fpm/pool.d/

Je vse v redu, ko strežnik teče? Pravzaprav je v svetu PHP-FPM konfiguracijska datoteka pravi mojster, ki določa, ali lahko spletno mesto deluje stabilno, varno in učinkovito.

Kakšna je konfiguracija procesnega bazena za PHP-FPM?

PHP-FPM (FastCGI Process Manager) je upravljalnik procesov za PHP, ki uporablja koncept "bazenov" za upravljanje PHP procesov za različna spletna mesta ali aplikacije.

Vsak .conf Datoteka je definicija področja, ki določa ključne parametre, kot so uporabnik, na katerem se proces izvaja, vrata ali vtičnica, na kateri posluša, pot dnevnika in število procesov.

Z drugimi besedami, te datoteke so kot "kloni" za vaš strežnik, ki omogočajo različnim spletnim mestom, da delujejo neodvisno, ne da bi se medsebojno motila.

Razlike in tehnike optimizacije v konfiguracijski datoteki PHP-FPM /etc/php/8.3/fpm/pool.d/

www.conf: Privzeti nabor procesov

Po namestitvi PHP-FPM bo sistem samodejno ustvaril www.conf mapa.

Njegova funkcija je zagotoviti privzeti bazen, ki deluje takoj po namestitvi, običajno se izvaja v ... www-data Uporabnik.

Ta bazen je primeren za okolja z enim samim mestom, ga je enostavno konfigurirati, večina parametrov pa je generičnih vrednosti, kot so:

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

Če deluje samo na enem spletnem mestu, je to dovolj.

etufo.org.conf: Nabor spletnih mest po meri

Če imate več lokacij, morate za vsako lokacijo ustvariti ločen bazen.

Na primer etufo.org.confNamenjeno je posebej za domenska imena. etufo.org Izključna konfiguracija.

Običajna praksa je:

  • Na primer, določite različne uporabnike in skupine user = etufo,group = etufo
  • Konfigurirajte na primer ločena vrata ali vtičnico za poslušanje listen = /run/php/etufo.sock
  • Prilagodite število procesov, da zagotovite stabilnost spletnega mesta ob visoki sočasnosti.
  • Neodvisne datoteke dnevnika olajšajo odpravljanje težav.

Prednost tega pristopa je varnostna izolacija: tudi če je eno spletno mesto napadeno, druga spletna mesta ne bodo prizadeta.

dummy.conf: Primer ali datoteka z nadomestnim besedilom

dummy.conf To so običajno predloge ali primeri, ki jih ponuja sistem.

Pravzaprav ne bo omogočeno, razen če ga ročno spremenite in omogočite.

Njegov namen je, da vam zagotovi referenco in vam pokaže, kako napisati novo konfiguracijo bazena.

Zato je bolj podoben "navodilu za uporabo" kot dejanski konfiguraciji za delovanje.

Zakaj uporabljati več datotek poola?

  • Različna spletna mesta bi morali upravljati različni uporabniki, da se izognemo prekrivanju dovoljenj.
  • 性能优化Število procesov je mogoče nastaviti individualno za vsak bazen in prilagoditi glede na povpraševanje po prometu.
  • IzolacijaDnevniki, izpis napak in poslušalna vrata so ločeni, kar olajša odpravljanje težav.

Na primer, če www.conf Zrušilo se je.etufo.org.conf Še vedno lahko deluje normalno in ne bo sesul celotnega strežnika.

Scenariji uporabe v resničnem svetu

  • Strežnik na enem mestuUporabljajte samo www.conf To je dovolj.
  • Večstranski strežnikZgradite enega za vsako spletno mesto .conf Datoteke, kot so etufo.org.conf.
  • dummy.confSamo za referenco, ni priporočljivo.

Primer primerjave konfiguracije

www.conf (privzeti bazen)

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

etufo.org.conf (Prilagojeni bazen)

[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

Ugotovili boste, da je razlika v uporabniku, poslušalnem naslovu in številu procesov.

Prilagajanje parametrov procesnega bazena PHP-FPM

Če konfiguracija uporablja dinamičnoTo je metoda predhodnega zagona nekaterih delovnih procesov in njihovega dinamičnega prilagajanja glede na količino zahtev, kar omogoča hitrejši odziv, ko se količina zahtev nenadoma poveča.

Za spletna mesta z določeno količino prometa je priporočljivo uporabljati pm = dynamicKer lahko vzdržuje določeno količino mirujočih procesov in se izogne ​​500 napakam med visoko sočasnostjo.

Priporočljivo ga je uporabljati le, če je obseg dostopa izjemno nizek in so pomnilniški viri omejeni. pm = ondemand Za varčevanje z viri.

Priporočljivo je, da ga spremenite v dinamičnega in ga optimizirate. pm.max_children In drugi parametri:

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 后自动退出

Ta konfiguracija zagotavlja zmogljivost, hkrati pa preprečuje izgubo virov.

Za podrobna navodila za konfiguracijo glejte naslednji vodič ▼

Glede na uradno dokumentacijo PHP:

»Vsak bazen je mogoče konfigurirati neodvisno, kar omogoča različne uporabnike, omejitve in nastavitve za vsako aplikacijo.«

Ta izjava jasno poudarja pomen konfiguracije z več bazeni: neodvisnost, prilagodljivost in nadzor.

Zaključek: Moje stališče

Konfiguracija strežnika je kot dirigent v orkestru, ki določa, kako naj se igra vsak instrument.

www.conf Je privzeti dirigent, primeren za solistične nastope;etufo.org.conf Je dirigent, narejen po meri za določen oder; in dummy.conf To je osnutek glasbenih partitur, ki vas spomni, kako pisati nove melodije.

V dobi, osredotočeni na informacijsko varnost in optimizacijo delovanja, je poznavanje pravilne uporabe teh konfiguracijskih datotek ključnega pomena za nadzor delovanja strežnika.

Konfiguracija ni le trivialno besedilo; je duša strežnika.

Če operirateWordPressZa aplikacije z več lokacijami toplo priporočamo, da takoj preverite in optimizirate te datoteke sklada, zlasti nastavitve parametrov sklada procesov, da bo vaš strežnik resnično zanesljiv.

发表 评论

您的邮箱地址不会被公开。 必填 项 已 用 * Oznaka

Imenik člankov
Pomaknite se na vrh