Résolution de l'erreur interne du serveur NGINX 500 pour le client et le serveur

Nginx (prononcé Moteur XCe serveur web open source, publié en octobre 2004, fait également office d'équilibreur de charge, de proxy inverse et de cache HTTP. Sa popularité et son utilité sont attestées par son adoption par des entreprises technologiques de premier plan telles que Microsoft, Google, Facebook, Twitter et Apple.

Nginx

Signification de l'erreur 500 (Erreur interne du serveur) dans Nginx

Comme tout autre logiciel ou serveur, Nginx peut rencontrer des erreurs, que son système de rapport d'erreurs intégré est capable d'identifier. Cependant, l'erreur 500 (Erreur interne du serveur) est un cas particulier. Cette erreur apparaît également sur divers serveurs web, tels qu'Apache et IIS.

Erreur interne du serveur Nginx 500

L'erreur 500 est un code d'état HTTP qui indique un problème serveur dont la cause première n'est pas clairement identifiée. Contrairement à d'autres codes d'état HTTP, tels que 403 (Interdit) ou 404 (Introuvable), elle ne fournit aucune indication sur la cause possible.

Comment corriger l'erreur 500 dans Nginx côté client ?

Ce code d'erreur indique un problème côté serveur qui peut généralement être résolu sur le serveur lui-même. Cependant, dans de rares cas, votre navigateur peut contribuer au problème en créant une requête que le serveur ne peut pas traiter.

Pour vérifier si le problème vient du navigateur, ouvrez le site web dans un autre navigateur, sur un autre appareil et sur un autre réseau. Si le site fonctionne correctement, videz le cache et les données de votre navigateur d'origine et assurez-vous qu'aucune extension ne soit à l'origine du problème.

Si le site web Nginx affiche toujours l'erreur 500, contactez votre administrateur serveur pour résoudre le problème.

Comment corriger l'erreur 500 de Nginx côté serveur ?

Cette erreur peut provenir d'une simple faute de syntaxe ou d'un problème avec l'application backend. Comme elle ne révèle pas la cause première, le dépannage peut s'avérer complexe. Rassurez-vous, la méthode systématique que nous présentons ci-dessous permettra de résoudre ce problème.

1. Vérifier la surcharge du serveur

Si votre serveur est surchargé, il peut afficher une erreur interne 500 en raison de ressources insuffisantes pour les tâches essentielles. Vérifiez l'utilisation du processeur, de la mémoire et de l'espace disque disponible à l'aide des commandes Free, Top ou HTop. La capture d'écran ci-dessous illustre le résultat de la commande Top.

vérification des ressources du serveur

Si le serveur est surchargé, l'ajout de ressources supplémentaires devrait résoudre l'erreur 500 de Nginx.

2. Vérification de la syntaxe de la composition

La raison la plus courante d'une erreur 500 dans Nginx est une configuration serveur incorrecte due à une erreur de syntaxe.

Pour résoudre ce problème, examinez les fichiers de configuration Nginx et vérifiez attentivement la syntaxe afin de déceler toute erreur ou directive mal placée.

Ensuite, vérifiez vos fichiers de configuration Nginx pour détecter les erreurs de syntaxe ou les directives mal placées. Utilisez des commandes comme `nginx -t` ou `nginx -t -c /chemin/vers/nginx.conf` pour vérifier la syntaxe et identifier les erreurs. Exécutez les commandes suivantes dans le terminal pour détecter les erreurs :

cd /etc/nginx/sites-available nginx -t

Vérification de la syntaxe de la composition

Vous pouvez également utiliser les éléments suivants :

nginx -t -c /chemin/vers/nginx.conf

Si des erreurs de syntaxe sont détectées, corrigez-les et procédez comme suit pour redémarrer/recharger Nginx :

sudo service nginx restart nginx -s reload

Dans certains cas, vous devrez peut-être modifier le fichier de configuration comme indiqué ci-dessous :

try_files avec try_files $uri = 404

ou

try_files $uri $uri/ /index.html; avec try_files $uri/ $uri /index.php?$query_string;

3. Vérification des journaux du serveur

Lorsqu'Nginx génère une erreur 500, il crée également une entrée dans son journal d'erreurs interne, ce qui peut indiquer la cause première de l'erreur. Les journaux du serveur se trouvent généralement à l'emplacement suivant :

/var/log/nginx/error.log

Sur une distribution Linux, procédez comme suit pour ouvrir le journal du serveur :

cd /var/log/nginx cat error.log

Sur la page qui s'affiche, vous pouvez examiner les indicateurs de la cause première. Par exemple, voir l'image ci-dessous :

Vérification des journaux du serveur

Cela indique que le serveur n'a pas pu établir de connexion SSL/TLS avec le client en raison d'un problème de certificat SSL. Après avoir identifié le problème dans les journaux, vous pouvez rechercher en ligne les causes possibles et les solutions.

Si vous ne parvenez pas à ouvrir le registre en raison d'une erreur « Permission refusée » pour le dossier, modifiez le fichier Nginx.conf en remplaçant « user www-data » par « user root ». Après avoir enregistré le fichier, redémarrez Nginx et réessayez d'ouvrir le registre.

4. Désactivez temporairement Cloudflare ou des services similaires.

Si vous utilisez Cloudflare ou un service similaire sur votre serveur, et que celui-ci n'est pas correctement configuré ou entre en conflit avec les mises à jour récentes, sa désactivation temporaire peut aider à diagnostiquer le problème.

  1. Aller à Panneau de contrôle Cloudflare Connectez-vous à l'aide de vos identifiants.
  2. Aller à Vue d'ensemble (Aperçu) et développer Avancé (Paramètres avancés).
  3. Cliquez Site Web en pause Mettez le site en pause et confirmez. Si votre hébergeur utilise Cloudflare, assurez-vous de désactiver cette intégration.
  4. Assurez-vous que les adresses IP du site sont correctes et vérifiez si l'erreur interne du serveur Nginx (500) a été résolue. N'oubliez pas de vérifier les versions HTTP et HTTPS du site. Désactiver CloudFlare sur le site web

5. Vérifier les certificats du serveur

Si l'un de vos certificats a expiré ou est devenu invalide dans vos paramètres actuels, cela provoquera assurément une erreur sur le serveur interne.

  1. Configurer Nginx pour utiliser Adresse IP Pour votre site web, pas pour le nom de domaine. Utilisez l'adresse IP du serveur dans les paramètres Nginx.
  2. Désactiver Vérification SSL Dans proxy_pass, ajoutez le certificat auto-signé. Vous pouvez en créer un dans votre tableau de bord Cloudflare (SSL > Certificats clients).
  3. Vérifiez le bon fonctionnement du serveur. Si c'est le cas, contactez l'autorité de certification ou vérifiez vos paramètres pour détecter toute configuration de certificat incorrecte.

6. Vérifiez la présence d'erreurs dans les applications backend.

Si Nginx redirige les requêtes client vers un autre service qui ne fonctionne pas correctement, cela provoque une erreur 500. Par exemple, si le serveur redirige les requêtes client vers une application backend telle que NodeJS et que cette application ne fonctionne pas correctement, cela entraîne l'erreur mentionnée précédemment.

N'oubliez pas que si les journaux du serveur n'affichent aucune erreur, cela indique généralement un problème au niveau du serveur dorsal.

Pour résoudre ce problème, consultez les journaux de l'application backend afin d'y rechercher d'éventuelles erreurs ou exceptions. Par exemple, sous WordPress, les journaux NodeJS se trouvent à l'emplacement suivant :

/var/www/ .com/logs/error.log

7. Autorisations de fichiers insuffisantes

Si le serveur Nginx ne dispose pas des autorisations nécessaires pour accéder à un fichier ou l'exécuter, une erreur 500 sera renvoyée. Par exemple, une erreur interne du serveur se produira sur un site WordPress si le serveur Nginx ne peut pas accéder aux fichiers PHP ou HTML du dossier public_html ni les servir.

Pour corriger cela, vous pouvez modifier les permissions Nginx nécessaires sur les fichiers ou répertoires auxquels le serveur accède à l'aide de la commande chmodIl s'agit généralement de 755 pour les répertoires et de 644 pour les fichiers.

8. Vérification de la compatibilité des modules complémentaires

Les extensions jouent un rôle crucial dans l'amélioration des capacités du serveur. Cependant, les extensions dysfonctionnelles, obsolètes ou sur-mises à jour peuvent provoquer des erreurs internes au serveur. Par exemple, une mise à jour de WordPress peut perturber le fonctionnement de votre site, car de nombreuses extensions deviennent incompatibles tant qu'elles ne sont pas mises à jour.

Pour résoudre ce problème, assurez-vous que chaque ajout Compatible Avec le logiciel serveur et les autres modules complémentaires. Bien que cela puisse paraître fastidieux, cela vaut la peine d'essayer. Sinon, essayez de désactiver tous les modules complémentaires pour voir si cela résout le problème.

Si vous avez récemment mis à jour le logiciel de votre serveur, essayez Revenir Revenez à la version précédente (si possible) pour vérifier si l'erreur est résolue. Cela permettra de confirmer si la mise à jour était à l'origine du problème. Vous pouvez reporter la mise à jour du logiciel jusqu'à ce que la compatibilité de tous les modules complémentaires soit confirmée.

9. Vérifier la présence de scripts défectueux

À l'instar des plugins, les scripts sont essentiels au bon fonctionnement de certains sites web. Un script corrompu, obsolète ou incompatible peut provoquer une erreur interne du serveur.

Vous pouvez résoudre ce problème en Désactivation des scripts Vérifiez le serveur Nginx. S'il fonctionne correctement, examinez les scripts et essayez d'identifier celui qui pose problème.

10. Augmenter la valeur du délai d'expiration du serveur

Si le délai d'attente du serveur est inférieur au temps de réponse de Nginx, une erreur interne du serveur se produira. De même, si la requête serveur prend plus de temps que le temps de réponse de Nginx, un problème surviendra.

Augmenter la valeur du délai d'expiration du serveur devrait résoudre le problème. Vous trouverez des instructions détaillées en ligne.

11. Assurez-vous que tous les processus de redirection fonctionnent.

Assurez-vous que tous les processus de redirection fonctionnent correctement lorsque Nginx fait office de serveur proxy. Si le serveur ne parvient pas à rediriger la requête du client vers le serveur principal, une erreur 500 se produira.

Désactiver temporairement toutes les redirections Pour vérifier le bon fonctionnement, en cas de succès, redémarrez chaque processus individuellement afin d'identifier la redirection défaillante. Une fois identifiée, recherchez en ligne les causes possibles et les solutions à cette erreur de redirection.

12. Utilisation de PHP avec Nginx

Nginx ne prend pas en charge PHP nativement ; par conséquent, des configurations PHP incorrectes avec Nginx peuvent entraîner une erreur interne du serveur.

Pour résoudre ce problème, vérifiez l'intégration de PHP avec Nginx. Si l'affichage des erreurs PHP est désactivé, le serveur renverra une erreur 500 de Nginx en cas de problème avec PHP. Activer l'affichage des erreurs PHP peut simplifier le dépannage.

Sous CentOS 7, procédez comme suit :

tail -f /var/log/php-fpm/www-error.log

Allez plutôt sur

/etc/php.ini

Et changer

display_errors = Désactivé

إلى

display_errors = Activé

Vous pouvez également rechercher un meilleur processeur PHP (tel que PHP-FPM) et activer la mise en cache Nginx.

13. Adoptez une approche minimaliste.

Si vous ne parvenez toujours pas à résoudre l'erreur 500, vous pouvez utiliser l'approche minimaliste pour résoudre le problème.

  1. Créer Sauvegarde Depuis votre site, remplacez le contenu du site par un simple fichier index.html contenant du texte brut.
  2. Vérifiez si le site Travaux Commencez à ajouter les instructions, les fonctionnalités, les services, les plugins, les scripts, etc., un par un.
  3. Assurez-vous de tester le site après chaque étape et de vérifier si le problème se reproduit.
  4. Remettez le contenu sur votre site et vérifiez si celui-ci est à l'origine du problème.
  5. Une fois que vous avez trouvé l'élément à l'origine du problème, vous pouvez le résoudre en effectuant une recherche sur Internet.

Comment éviter de reproduire l'erreur 500 du serveur Nginx à l'avenir

Vous pouvez suivre les étapes suivantes pour éviter toute réapparition de l'erreur 500 de Nginx :

  • Effectuez la maintenance régulière du serveur.
  • Assurez-vous que le code et le contenu du site (images, vidéos, etc.) sont optimisés pour vos paramètres.
  • Créez un réseau de diffusion de contenu (CDN) pour servir le site via son cache.

Si vous avez des questions, n'hésitez pas à les poser dans la section commentaires.

Les commentaires sont fermés.