Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur php504

Comment résoudre l'erreur php504

王林
王林original
2020-06-30 13:48:258032parcourir

Solution à l'erreur php504 : 1. Augmentez la taille du tampon de la réponse du processus fastcgi ; 2. Modifiez la configuration de l'environnement php et augmentez le délai d'attente du script de traitement du processus php-cgi ; php-fpm Passer en mode Apache.

Comment résoudre l'erreur php504

La solution est la suivante :

Scénario 1 :

En raison du tampon de réponse du processus fastcgi par défaut de nginx Erreurs causées par une taille trop petite

Solution :

Généralement, le tampon de réponse du processus fastcgi par défaut est de 8 Ko. Dans ce cas, vous pouvez le définir plus grand dans nginx.conf, ajoutez. : fastcgi_buffers 8 128k, ce qui signifie définir le tampon fastcgi sur 8 blocs de 128k d'espace.

Bien sûr, si vous effectuez une certaine opération en temps réel, vous devrez peut-être augmenter le paramètre de délai d'attente de nginx, par exemple, le définir sur 60 secondes : send_timeout 60 après avoir ajusté ces deux paramètres, généralement vous ne serez plus invité à l'erreur « 504 Gateway Time-out », le problème est fondamentalement résolu.

Scénario 2 :

Problèmes de configuration de l'environnement PHP

Parfois, le site Web doit modifier la configuration de php-fpm et nginx. Car dans ce cas, le message d'erreur « 504 Gateway Time-out » apparaîtra également. À l'heure actuelle, la signification du délai d'attente de la passerelle Nginx 504 est que la passerelle demandée n'a pas été demandée. En termes simples, cela signifie que l'exécutable PHP-CGI n'a pas été demandé.

Solution :

Changez simplement quelques configurations de php-fpm :

Changez max_children des 10 précédents aux 30 actuels, afin de vous assurer qu'il y en a suffisamment. Le processus php-cgi peut être utilisé ;

Modifiez request_terminate_timeout des 0 précédents à 60 s, de sorte que le délai d'attente du processus php-cgi pour traiter le script soit de 60 secondes, ce qui peut empêcher la suspension du processus et améliorer l'efficacité de l'utilisation.

Modifiez ensuite plusieurs éléments de configuration de nginx pour réduire le nombre de requêtes FastCGI et essayez de garder les tampons inchangés :

fastcgi_buffers passe de 4 64k à 2 256k

 ; fastcgi_buffer_size De 64 Ko à 128 Ko ;

fastcgi_busy_buffers_size passe de 128 Ko à 256 Ko ;

fastcgi_temp_file_write_size passe de 128 Ko à 256 Ko ;

Rechargez la configuration de php-fpm et nginx et testez à nouveau Si l'erreur "504 Gateway Time-out" n'apparaît pas, le problème est résolu.

Scénario 3 :

La méthode de traitement statique par défaut de php-fpm fera que le processus php-cgi occupera la mémoire pendant une longue période et ne pourra pas être libéré, ce qui entraînera un 504 erreur.

Solution :

Changez la méthode de traitement de php-fpm en mode Apache.

Si vous souhaitez en savoir plus sur les connaissances connexes, veuillez visiter le site Web chinois 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