|
Under de senaste dagarna har det varit många problem med Nginx 502 på webben, och jag trodde först att det var ett problem med Nginx som många andra.
Webben använder arkitekturen nginx+php, och webbplatsen har inte varit online på länge, så optimeringen är i princip bara en initial konfiguration.
När jag kollade php-fpm.log hittade jag varningar, vilket i princip sammanföll med tiden då webbplatsen stängdes av. Jag börjar här.
Jag letade också efter lite dokumentation först, men det var fortfarande ett problem dagen efter. Senare kollade jag konfigurationsfilen och översatte den (Baidu), och den engelska grunden var inte bra. PM-modulen liknar Apaches modul, som är statisk och dynamisk.
Många av de justeringar som nämns på internet baseras mestadels på dynamik, men de säger inte hur denna modul ska definieras. Så alla bör titta närmare på konfigurationsfilen när de använder dynamisk och statisk pm = statisk
; Antalet barnprocesser som ska skapas när pm är inställt på 'statisk' och
; Maximalt antal barnprocesser när PM är inställt på 'dynamisk' eller 'på begäran'.
; Detta värde sätter gränsen för antalet samtidiga förfrågningar som kommer att vara
; serverade. Motsvarighet till ApacheMaxClients-direktivet med mpm_prefork.
; Ekvivalent med PHP_FCGI_CHILDREN miljövariabeln i den ursprungliga PHP:en
; CGI. Standardinställningarna nedan baseras på en server med inte så många resurser. Gör inte
; Glöm att justera PM.* för att passa dina behov.
; Notera: Används när pm är inställd på 'statisk', 'dynamisk' eller 'ondemand'
; Obs: Detta värde är obligatoriskt.
pm.max_barn = 300
; Antalet barnprocesser som skapas vid uppstart.
; Notera: Används endast när pm är inställt på 'dynamisk'
; Standardvärde: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Det önskade minsta antalet inaktiva serverprocesser.
; Notera: Används endast när pm är inställt på 'dynamisk'
; Obs: Obligatoriskt när pm är inställt på 'dynamisk'
;p m.min_spare_servers = 20
; Det önskade maximala antalet inaktiva serverprocesser.
; Notera: Används endast när pm är inställt på 'dynamisk'
; Obs: Obligatoriskt när pm är inställt på 'dynamisk'
;pm.max_spare_servers = 500
; Antalet sekunder efter vilka en viloaktiv process avslutas.
; Obs: Används endast när pm är inställt på 'ondemand'
; Standardvärde: 10 sekunder
pm.process_idle_timeout = 10-s;
; Antalet förfrågningar som varje barnprocess bör utföra innan respawn.
; Detta kan vara användbart för att kringgå minnesläckor i tredjepartsbibliotek. För
; Slutlös förfrågningsbehandling specificera '0'. Motsvarande PHP_FCGI_MAX_REQUESTS.
; Standardvärde: 0
pm.max_förfrågningar = 10240
Det röda fältet är sättet att definiera det, och sedan ställa in parametrarna enligt serversituationen
Om du använder den statiska parametern pm.max_children fungerar det, resten gör det inte. Dynamiken är motsatsen.
2G-minne pm.max_children är cirka 50 påslaget, vilket är nödvändigt för att justeras efter den faktiska situationen.
Om det finns några brister vill jag att ni ger era åsikter, 502 lösningar.
|