|
Per pastarąsias kelias dienas žiniatinklyje kilo daug problemų su "Nginx 502", ir iš pradžių maniau, kad tai yra "Nginx" problema, kaip ir daugelis žmonių.
Žiniatinklyje naudojama nginx+php architektūra, o svetainė ilgą laiką nebuvo prisijungusi, todėl optimizavimas iš esmės yra tik tam tikra pradinė konfigūracija.
Tikrindami php-fpm.log radome įspėjimus, kurie iš esmės sutapo su svetainės sustabdymo laiku. Pradėsiu nuo čia.
Iš pradžių taip pat ieškojau dokumentų, bet kitą dieną vis tiek buvo problema. Vėliau patikrinau konfigūracijos failą ir išverčiau jį (Baidu), o anglų kalbos pagrindas nebuvo geras. PM modulis yra panašus į "Apache" modulį, kuris yra statiškas ir dinamiškas.
Daugelis internete paminėtų pakeitimų dažniausiai yra pagrįsti dinamika, tačiau juose nesakoma, kaip apibrėžti šį modulį. Taigi kiekvienas turėtų atidžiau pažvelgti į konfigūracijos failą, kai naudoja dinaminį ir statinį pm = statinis
; Antrinių procesų, kurie turi būti sukurti, kai pm nustatytas kaip "statinis" ir
; Maksimalus antrinių procesų skaičius, kai PM nustatytas kaip "Dinaminis" arba "Pagal poreikį".
; Ši reikšmė nustato vienu metu pateiktų užklausų, kurios bus
; patiektas. Atitinka "ApacheMaxClients" direktyvą su mpm_prefork.
; Atitinka PHP_FCGI_CHILDREN aplinkos kintamąjį pradiniame PHP
; CGI. Toliau nurodyti numatytieji nustatymai yra pagrįsti serveriu, neturinčiu daug išteklių. Ne
; Pamirškite pakoreguoti PM.*, kad atitiktų jūsų poreikius.
; Pastaba: Naudojama, kai pm nustatytas kaip "statinis", "dinaminis" arba "pagal poreikį"
; Pastaba: ši vertė yra privaloma.
pm.max_vaikai = 300
; Paleidžiant sukurtų antrinių procesų skaičius.
; Pastaba: Naudojama tik tada, kai pm nustatyta kaip "dinaminė"
; Numatytoji reikšmė: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_serveriai = 50
; Norimas minimalus neveikiančių serverio procesų skaičius.
; Pastaba: Naudojama tik tada, kai pm nustatyta kaip "dinaminė"
; Pastaba: privaloma, kai pm nustatyta kaip "dinaminė"
;p m.min_atsarginiai_serveriai = 20
; Norimas maksimalus neveikiančių serverio procesų skaičius.
; Pastaba: Naudojama tik tada, kai pm nustatyta kaip "dinaminė"
; Pastaba: privaloma, kai pm nustatyta kaip "dinaminė"
;pm.max_atsarginiai_serveriai = 500
; Sekundžių skaičius, po kurio tuščiosios eigos procesas bus nužudytas.
; Pastaba: Naudojamas tik tada, kai pm nustatytas kaip "ondemand"
; Numatytoji reikšmė: 10s
pm.process_idle_timeout = 10 s;
; Užklausų, kurias kiekvienas vaiko procesas turėtų vykdyti prieš atsinaujinant, skaičius.
; Tai gali būti naudinga norint išvengti atminties nutekėjimo 3-iųjų šalių bibliotekose. Dėl
; Nesibaigiantis užklausų apdorojimas nurodykite '0'. Atitinka PHP_FCGI_MAX_REQUESTS.
; Numatytoji reikšmė: 0
pm.max_užklausos = 10240
Raudonas laukas yra būdas jį apibrėžti, o tada nustatyti parametrus pagal serverio situaciją
Jei naudosite statinį parametrą pm.max_children, jis veiks, likusieji neveiks. Dinamika yra priešinga.
2G atmintis pm.max_children yra įjungta apie 50, kurią būtina koreguoti pagal faktinę situaciją.
Jei yra kokių nors trūkumų, norėčiau, kad išsakytumėte savo nuomonę, 502 sprendimus.
|