|
În ultimele zile, au apărut multe probleme cu Nginx 502 pe internet și am crezut inițial că este o problemă cu Nginx, la fel ca mulți oameni.
Web-ul folosește arhitectura nginx+php, iar site-ul nu a mai fost online de mult timp, așa că optimizarea este practic doar o configurație inițială.
Verificând php-fpm.log am găsit avertismente, care practic au coincis cu momentul în care site-ul a fost suspendat. Încep de aici.
Am căutat și documentație la început, dar a doua zi a apărut o problemă. Mai târziu, am verificat fișierul de configurare și l-am tradus (Baidu), iar fundația în engleză nu era bună. Modulul PM este similar cu modulul Apache, care este static și dinamic.
Multe dintre ajustările menționate pe Internet se bazează în mare parte pe dinamică, dar nu spun cum să definească acest modul. Așadar, toată lumea ar trebui să se uite mai atent la fișierul de configurare atunci când folosește dinamic și static PM = static
; Numărul de procese copii care trebuie create când pm este setat pe "static" și
; Numărul maxim de procese copil când PM este setat pe 'dinamic' sau 'la cerere'.
; Această valoare stabilește limita numărului de cereri simultane care vor fi
; servit. Echivalent cu directiva ApacheMaxClients cu mpm_prefork.
; Echivalent cu variabila de mediu PHP_FCGI_CHILDREN din PHP original
; CGI. Setările implicite de mai jos se bazează pe un server fără prea multe resurse. Nu
; Uită să ajustezi PM.* ca să se potrivească nevoilor tale.
; Notă: Se folosește când pm-ul este setat pe 'static', 'dinamic' sau 'la cerere'
; Notă: Această valoare este obligatorie.
pm.max_copii = 300
; Numărul de procese copiluri create la pornire.
; Notă: Folosit doar când pm-ul este setat pe 'dinamic'
; Valoare implicită: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Numărul minim dorit de procese servere inactive.
; Notă: Folosit doar când pm-ul este setat pe 'dinamic'
; Notă: Obligatoriu când pm-ul este setat pe 'dinamic'
;p m.min_spare_servers = 20
; Numărul maxim dorit de procese servere inactive.
; Notă: Folosit doar când pm-ul este setat pe 'dinamic'
; Notă: Obligatoriu când pm-ul este setat pe 'dinamic'
;pm.max_servere_de rezervă = 500
; Numărul de secunde după care un proces inactiv va fi eliminat.
; Notă: Se folosește doar când pm-ul este setat pe "la cerere"
; Valoare implicită: 10s
pm.process_idle_timeout = 10s;
; Numărul de cereri pe care fiecare proces copil ar trebui să le execute înainte de a reapărea.
; Acest lucru poate fi util pentru a ocoli scurgerile de memorie din bibliotecile terțe. Pentru
; Procesarea nesfârșită a cererilor specifică '0'. Echivalentul PHP_FCGI_MAX_REQUESTS.
; Valoare implicită: 0
pm.max_solicitări = 10240
Câmpul roșu este modul de a o defini, apoi de setat parametrii în funcție de situația serverului
Dacă folosești parametrul static pm.max_children, va funcționa, restul nu. Dinamica este opusă.
Memoria 2G pm.max_children este de aproximativ 50 activată, ceea ce este necesar pentru ajustare în funcție de situația reală.
Dacă există vreo neajuns, aș dori să vă exprimați părerile voastre, soluții 502.
|