Maison  >  Article  >  développement back-end  >  Une erreur 502 se produit lorsque PHP se connecte à la base de données

Une erreur 502 se produit lorsque PHP se connecte à la base de données

尚
original
2019-10-28 16:52:223286parcourir

Une erreur 502 se produit lorsque PHP se connecte à la base de données

502 une mauvaise passerelle apparaît dans nginx+php. Généralement, ce n'est pas un problème avec nginx, mais est causé par un problème avec fastcgi ou php. Les problèmes courants sont les suivants.

1. La limite de mémoire de php.ini est trop petite (vous devez y prêter attention s'il existe des processus de programme php individuels qui doivent occuper une grande quantité de mémoire)

2. ou paramètres max_requests dans php-fpm.conf Déraisonnable (Si le paramètre est trop petit, il n'y aura pas suffisamment de processus cgi pour gérer la demande. Si le paramètre est trop élevé, la réponse sera normale pendant un certain temps, puis elle sera mettre beaucoup de temps à répondre. Généralement, les enfants sont calculés en fonction de la mémoire, par exemple, 1G est réglé sur 64, 2G128. Cela peut être ajusté en fonction de la situation réelle

De plus, la commande pour vérifier si. le nombre actuel de processus PHP FastCGI est suffisant : netstat -anpo | grep “php-cgi” Processus FastCGI", cela signifie que le "nombre de processus FastCGI" n'est pas suffisant et doit être augmenté)

3. Vérifiez le journal des erreurs nginx et constatez que pstream a envoyé un en-tête trop gros lors de la lecture de l'en-tête de réponse depuis l'amont, vérifiez si la taille du tampon de tête client et du tampon fastcgi est trop petite, qui peut être définie sur 32 Ko.

4. Le temps d'exécution du programme php est trop long et expire. Vérifiez les différents paramètres de délai d'attente dans nginx et fastcgi.

(fastcgi_connect_timeout 300 dans nginx; fastcgi_send_timeout 300 : fastcgi_read_timeout300; keepalive_timeout; request_terminate_timeout dans php-fpm, max_execution_time dans php.ini)

5. php-fpm a un paramètre max_requests, ce paramètre spécifie le nombre maximum de demandes que chaque enfant peut traiter avant d'être fermé. Lors du traitement d'un grand nombre de demandes, si cette valeur est trop faible, les enfants se suicideront et s'établiront fréquemment, ce qui fera perdre beaucoup de temps. Si tous les enfants se suicident presque à ce moment-là, il n'y aura aucun enfant pour le faire. répondez à la demande avant la reconstruction, donc 502 apparaîtra. Vous pouvez définir cette valeur plus grande ou 0 [infini].

Recommandé : serveur 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