Maison  >  Article  >  développement back-end  >  Comment résoudre le problème d'erreur nginx php 499

Comment résoudre le problème d'erreur nginx php 499

藏色散人
藏色散人original
2021-04-02 09:03:484369parcourir

L'erreur nginx php 499 est due au fait que le temps de traitement côté serveur est trop long et que le client est déconnecté et en attente. La solution est de trouver "php-fpm.conf" sous Linux et d'ajouter "pm" en haut. bottom =dynamic" et d'autres configurations.

Comment résoudre le problème d'erreur nginx php 499

L'environnement d'exploitation de cet article : système nginx1.0.4, PHP version 7.1, ordinateur DELL G3

PHP et NGINX 499 , 502 Gestion des problèmes

Il existe de nombreuses raisons pour lesquelles nginx affiche 502, mais la plupart des raisons peuvent être attribuées à des ressources insuffisantes.

C'est-à-dire qu'il y a un problème avec le traitement backend php-fpm, et nginx le fera. La demande correcte du client a été envoyée au processus back-end php-fpm,

Cependant, en raison de problèmes avec le processus php-fpm, le code php n'a pas pu être analysé correctement et une erreur 502 a finalement été renvoyée au client.

La raison pour laquelle le serveur apparaît avec 502 est que la connexion a expiré. Nous envoyons une requête au serveur. Parce que le serveur a actuellement trop de liens, le serveur ne peut pas donner une réponse normale, ce qui entraîne une telle. une erreur.

Donc, si votre serveur Si la quantité de concurrence est très importante, vous ne pouvez d'abord ajouter que des machines, puis optimiser comme suit pour obtenir de meilleurs résultats, mais si vous avez une petite concurrence mais obtenez 502, cela peut généralement être attribué à des problèmes de configuration et à des problèmes de délai d'expiration du script.

Le dernier problème est le code du programme lui-même. Le temps de traitement est trop long et les ressources ne peuvent pas être restituées ! Alors faites attention à l’optimisation du code !

499 correspond à « le client a fermé la connexion ». Cela est probablement dû au fait que le temps de traitement côté serveur est trop long et que le client est déconnecté de l'état d'attente.

Si le message est soumis deux fois trop rapidement, 499 apparaîtra. nginx le considère comme une connexion non sécurisée et rejette activement la connexion du client !

Il y a aussi un temps mort !

La plupart d'entre eux disent que proxy_ignore_client_abort est modifié, ce qui signifie que le serveur proxy ne doit pas fermer activement la connexion client. C'est une situation. Mais ce n’est pas une solution au problème !

Voici comment j'ai résolu ce problème via fpm

Contrôlez le processus enfant, les options sont statiques et dynamiques. Si statique est sélectionné, un nombre fixe de processus enfants est spécifié par pm.max_children. Pour les serveurs dédiés, la valeur pm peut être définie sur statique. Si vous sélectionnez dynamique, cela est contrôlé par une série de paramètres, c'est-à-dire le processus dynamique.

Sous Linux on trouve php-fpm.conf et on ajoute la configuration suivante en bas

pm = configuration de l'option de routage dynamique dynamique

pm.max_children = 16 nombre maximum de processus enfants

pm.start_servers = 4 Nombre de processus au démarrage

pm.min_spare_servers = 2 Nombre minimum de processus inactifs, si les processus inactifs sont inférieurs à cette valeur, créez un nouveau processus enfant

pm.max_spare_servers = 16 garantit le nombre maximum de processus inactifs. Si les processus inactifs sont supérieurs à cette valeur, ils seront nettoyés

Je n'entrerai pas trop dans les détails. la configuration statique. La configuration par défaut est suffisante. Si vous souhaitez en savoir plus, veuillez la contrôler sur Baidu Nombre de processus dans php-fpm

Apprentissage recommandé : "Tutoriel vidéo PHP".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn