|
Za posledné dni sa na webe objavilo veľa problémov s Nginx 502 a myslel som si, že je to problém Nginx, ako to spočiatku robí veľa ľudí.
Web používa architektúru nginx+php a webová stránka už dlho nebola online, takže optimalizácia je v podstate len počiatočná konfigurácia.
Kontrola php-fpm.log našla varovania, ktoré v podstate súviseli s časom pozastavenia webovej stránky. Začnem tu.
Najskôr som hľadal nejakú dokumentáciu, ale aj na druhý deň bol problém. Neskôr som skontroloval konfiguračný súbor a preložil ho (Baidu), a anglické základy neboli dobré. PM modul je podobný modulu Apache, ktorý je statický a dynamický.
Mnohé z úprav spomenutých na internete sú väčšinou založené na dynamike, ale neuvádzajú, ako tento modul definovať. Preto by si každý mal pri používaní dynamického a statického formátu bližšie pozrieť konfiguračný súbor pm = statický
; Počet podprocesov, ktoré sa majú vytvoriť, keď je pm nastavený na 'statické' a
; Maximálny počet podprocesov, keď je PM nastavený na 'dynamický' alebo 'na požiadanie'.
; Táto hodnota stanovuje limit počtu súčasných požiadaviek, ktoré budú
; Podávali. Ekvivalent direktívy ApacheMaxClients s mpm_prefork.
; Ekvivalent PHP_FCGI_CHILDREN environmentálnej premennej v pôvodnom PHP
; CGI. Nižšie uvedené predvolené nastavenia sú založené na serveri bez väčších zdrojov. Ne-
; Zabudni upraviť PM.* podľa svojich potrieb.
; Poznámka: Používa sa, keď je pm nastavený na 'statické', 'dynamické' alebo 'na požiadanie'
; Poznámka: Táto hodnota je povinná.
pm.max_deti = 300
; Počet podprocesov vytvorených pri štarte.
; Poznámka: Používa sa len vtedy, keď je pm nastavený na 'dynamický'
; Predvolená hodnota: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Požadovaný minimálny počet nečinných serverových procesov.
; Poznámka: Používa sa len vtedy, keď je pm nastavený na 'dynamický'
; Poznámka: Povinné, keď je pm nastavený na 'dynamické'
;p m.min_spare_servers = 20
; Požadovaný maximálny počet nečinných serverových procesov.
; Poznámka: Používa sa len vtedy, keď je pm nastavený na 'dynamický'
; Poznámka: Povinné, keď je pm nastavený na 'dynamické'
;pm.max_spare_servers = 500
; Počet sekúnd, po ktorých sa nečinný proces zastaví.
; Poznámka: Používa sa len vtedy, keď je pm nastavený na 'ondemand'
; Predvolená hodnota: 10s
pm.process_idle_timeout = 10s;
; Počet požiadaviek, ktoré by mal každý podprocesný proces vykonať pred znovuzrodením.
; To môže byť užitočné na obchádzanie únikov pamäte v knižniciach tretích strán. Pre
; Nekonečné spracovanie požiadaviek špecifikuj '0'. Ekvivalent PHP_FCGI_MAX_REQUESTS.
; Predvolená hodnota: 0
pm.max_requests = 10240
Červené pole je spôsob, ako ho definovať, a potom nastaviť parametre podľa situácie na serveri
Ak použijete parameter statický pm.max_children, bude to fungovať, ostatné nie. Dynamika je opačná.
2G pamäť pm.max_children je asi 50 zapnutých, čo je potrebné na prispôsobenie podľa aktuálnej situácie.
Ak je nejaký nedostatok, rád by som vás požiadal, aby ste poskytli svoje názory, 502 riešenia.
|