|
Az elmúlt napokban sok probléma volt a Nginx 502-vel az interneten, és én is úgy gondoltam, hogy ez a Nginx-szel van gond, mint sokan mások először.
A web a nginx+php architektúráját használja, és a weboldal már régóta nem volt online, így az optimalizálás gyakorlatilag csak egy kezdeti konfiguráció.
Ellenőrizve php-fpm.log találtam figyelmeztetéseket, ami gyakorlatilag egybeesett azzal az időponttal, amikor a weboldalt leállították. Itt kezdem.
Először kerestem némi dokumentációt is, de másnap is volt probléma. Később megnéztem a konfigurációs fájlt és lefordítottam (Baidu), és az angol alap nem volt jó. A PM modul hasonló az Apache moduljához, amely statikus és dinamikus.
Az interneten említett sok módosítás főként dinamikán alapul, de nem mondják el, hogyan definiáljuk ezt a modult. Ezért mindenkinek érdemes alaposabban megvizsgálni a konfigurációs fájlt, amikor dinamikus és statikus fájlokat használunk pm = statikus
; A gyermekfolyamatok száma, amelyeket létre kell hozni, amikor a pm 'statikus'-ra van állítva, és a
; A gyermek folyamatok maximális száma, amikor a PM 'dinamikus' vagy 'ondemand' állapotban van.
; Ez az érték határozza meg az egyidejű kérések számát
; Kiszolgálták. Ez az ApacheMaxClients utasításnak felel meg mpm_prefork.
; Az eredeti PHP PHP_FCGI_CHILDREN környezeti változójának megfelelője
; CGI. Az alábbi alapértelmezések egy olyan szerveren alapulnak, amelyhez nincs sok erőforrás. Nem
; Felejtsd el a PM.* beállítását, hogy megfeleljen az igényeidnek.
; Megjegyzés: Akkor használják, amikor a pm beállítása 'static', 'dynamic' vagy 'ondemand'
; Megjegyzés: Ez az érték kötelező.
pm.max_gyermek = 300
; A kezdetkor létrehozott gyermekfolyamatok száma.
; Megjegyzés: Csak akkor használják, ha a pm 'dinamikus' beállításra van állítva.
; Alapértelmezett érték: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; A kívánt minimális üres szerver folyamatok száma.
; Megjegyzés: Csak akkor használják, ha a pm 'dinamikus' beállításra van állítva.
; Megjegyzés: Kötelező, ha a pm 'dinamikus' állapotban van
;p m.min_spare_servers = 20
; A kívánt maximális számú üres szerver folyamat.
; Megjegyzés: Csak akkor használják, ha a pm 'dinamikus' beállításra van állítva.
; Megjegyzés: Kötelező, ha a pm 'dinamikus' állapotban van
;pm.max_spare_servers = 500
; Hány másodperc után egy tétlen folyamat megszűnik.
; Megjegyzés: Csak akkor használják, ha a pm 'ondemand' (ondemand' (ondemand) állapotban van beállítva
; Alapértelmezett érték: 10s
pm.process_idle_timeout = 10-esek;
; Hány kérést kell végrehajtania minden gyereknek a repawnálás előtt.
; Ez hasznos lehet a memóriakiszivárgások kikerülésében harmadik féltől származó könyvtárakban. Mert
; Végtelen kérésfeldolgozás megadja a '0'-t. Ez PHP_FCGI_MAX_REQUESTS megfelelő.
; Alapértelmezett érték: 0
pm.max_requests = 10240
A piros mező a módja annak, hogy ezt definiáljuk, majd a paramétereket a szerver helyzete szerint állítsuk be
Ha a statikus pm.max_children paramétert használod, az működni fog, a többi nem. A dinamika ennek az ellenkezője.
A 2G memória pm.max_children körülbelül 50 bekapcsolt, ami szükséges a tényleges helyzethez igazítani.
Ha van bármilyen hiányosság, szeretném, ha megosztanád a véleményedet, 502 megoldás.
|