|
Ces derniers jours, il y a eu de nombreux problèmes avec Nginx 502 sur le web, et je pensais que c’était un problème avec Nginx comme beaucoup de gens au début.
Le web utilise l’architecture nginx+php, et le site n’a pas été en ligne depuis longtemps, donc l’optimisation est essentiellement une configuration initiale.
En consultant, php-fpm.log trouvé des avertissements, qui coïncidaient essentiellement avec la période de suspension du site. Je commence par ici.
J’ai aussi cherché des documents au début, mais il y avait toujours un problème le lendemain. Plus tard, j’ai vérifié le fichier de configuration et traduit (Baidu), et la base anglaise n’était pas bonne. Le module PM est similaire au module d’Apache, qui est statique et dynamique.
Beaucoup des ajustements mentionnés sur Internet sont principalement basés sur la dynamique, mais ils ne précisent pas comment définir ce module. Donc tout le monde devrait examiner de plus près le fichier de configuration lorsqu’il utilise dynamique et statique PM = statique
; Le nombre de processus enfants à créer lorsque le pm est réglé sur « statique » et le
; nombre maximal de processus enfants lorsque la gestion de projet est réglée sur « dynamique » ou « à la demande ».
; Cette valeur fixe la limite au nombre de requêtes simultanées qui seront
; servi. Équivalent à la directive ApacheMaxClients avec mpm_prefork.
; Équivalent à la variable d’environnement PHP_FCGI_CHILDREN dans le PHP original
; CGI. Les paramètres par défaut ci-dessous sont basés sur un serveur sans beaucoup de ressources. Ne pas
; Oubliez de modifier PM.* pour qu’il corresponde à vos besoins.
; Note : Utilisé lorsque le PM est réglé sur « statique », « dynamique » ou « à la demande »
; Note : Cette valeur est obligatoire.
pm.max_enfants = 300
; Le nombre de processus enfants créés au démarrage.
; Note : Utilisé uniquement lorsque le pm est réglé sur « dynamique »
; Valeur par défaut : min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Le nombre minimum souhaité de processus serveur inactifs.
; Note : Utilisé uniquement lorsque le pm est réglé sur « dynamique »
; Note : Obligatoire lorsque PM est réglé sur « dynamique »
;p m.min_spare_servers = 20
; Le nombre maximal souhaité de processus serveur inactifs.
; Note : Utilisé uniquement lorsque le pm est réglé sur « dynamique »
; Note : Obligatoire lorsque PM est réglé sur « dynamique »
;pm.max_serveurs_de réserve = 500
; Le nombre de secondes après lesquelles un processus inactif sera interrompu.
; Note : Utilisé uniquement lorsque le PM est réglé sur « à la demande »
; Valeur par défaut : 10 secondes
pm.process_idle_timeout = 10s ;
; Le nombre de requêtes que chaque processus enfant doit exécuter avant de réapparaître.
; Cela peut être utile pour contourner les fuites de mémoire dans les bibliothèques tierces. Pour
; Un traitement de requêtes sans fin précise « 0 ». Équivalent à PHP_FCGI_MAX_REQUESTS.
; Valeur par défaut : 0
pm.max_requêtes = 10240
Le champ rouge est la façon de la définir, puis de définir les paramètres selon la situation du serveur
Si vous utilisez le paramètre statique pm.max_children, il fonctionnera, le reste non. La dynamique est l’inverse.
La mémoire 2G pm.max_children est active à environ 50, ce qui est nécessaire pour s’ajuster à la situation réelle.
S’il y a une lacune, j’aimerais que vous donniez votre avis, solutions 502.
|