|
De afgelopen dagen zijn er veel problemen geweest met Nginx 502 op het web, en ik dacht in het begin dat het een probleem met Nginx was, zoals veel mensen.
Het web gebruikt de architectuur van nginx+php, en de website is al lange tijd niet online, dus de optimalisatie is eigenlijk gewoon een beginconfiguratie.
Toen ik php-fpm.log controleerde, vonden we waarschuwingen, die eigenlijk samenvielen met het moment waarop de website was geschorst. Ik begin hier.
Ik heb eerst ook naar wat documentatie gezocht, maar de volgende dag was er nog steeds een probleem. Later controleerde ik het configuratiebestand en vertaalde het (Baidu), en de Engelse basis was niet goed. De PM-module lijkt op de module van Apache, die statisch en dynamisch is.
Veel van de aanpassingen die op het internet worden genoemd, zijn vooral gebaseerd op dynamiek, maar ze zeggen niet hoe deze module gedefinieerd moet worden. Dus iedereen zou het configuratiebestand goed moeten bekijken bij het gebruik van dynamisch en statisch pm = statisch
; Het aantal kindprocessen dat wordt aangemaakt wanneer pm wordt ingesteld op 'statisch' en de
; Het maximale aantal kindprocessen wanneer PM is ingesteld op 'dynamisch' of 'on-demand'.
; Deze waarde stelt de limiet vast aan het aantal gelijktijdige verzoeken dat zal zijn
; gediend. Gelijk aan de ApacheMaxClients-richtlijn met mpm_prefork.
; Equivalent aan de PHP_FCGI_CHILDREN omgevingsvariabele in de originele PHP
; CGI. De onderstaande standaardwaarden zijn gebaseerd op een server zonder veel middelen. Niet doen
; Vergeet PM.* aan te passen om aan je wensen te voldoen.
; Opmerking: Gebruikt wanneer PM is ingesteld op 'statisch', 'dynamisch' of 'on-demand'
; Opmerking: Deze waarde is verplicht.
pm.max_kinderen = 300
; Het aantal kindprocessen dat bij het opstarten wordt aangemaakt.
; Opmerking: Alleen gebruikt wanneer pm op 'dynamisch' staat
; Standaardwaarde: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Het gewenste minimum aantal idle serverprocessen.
; Opmerking: Alleen gebruikt wanneer pm op 'dynamisch' staat
; Opmerking: Verplicht wanneer pm op 'dynamisch' staat
;p m.min_spare_servers = 20
; Het gewenste maximale aantal inactieve serverprocessen.
; Opmerking: Alleen gebruikt wanneer pm op 'dynamisch' staat
; Opmerking: Verplicht wanneer pm op 'dynamisch' staat
;pm.max_spare_servers = 500
; Het aantal seconden waarna een inactief proces wordt uitgeschakeld.
; Opmerking: Alleen gebruikt wanneer pm op 'ondemand' staat
; Standaardwaarde: 10s
pm.process_idle_timeout = 10s;
; Het aantal verzoeken dat elk kindproces moet uitvoeren voordat het respawnt.
; Dit kan nuttig zijn om geheugenlekken in bibliotheken van derden te omzeilen. Voor
; Eindeloze verzoekverwerking specificeer '0'. Gelijk aan PHP_FCGI_MAX_REQUESTS.
; Standaardwaarde: 0
pm.max_requests = 10240
Het rode veld is de manier om het te definiëren, en vervolgens de parameters in te stellen volgens de serversituatie
Als je de statische parameter pm.max_children gebruikt, werkt het, de rest niet. De dynamiek is het tegenovergestelde.
2G-geheugen pm.max_children staat ongeveer 50 aan, wat nodig is om aan te passen aan de werkelijke situatie.
Als er een tekortkoming is, wil ik graag dat jullie jullie mening geven, 502 oplossingen.
|