Introduction
Parfois, nous pouvons rencontrer des problèmes lorsque l'un de nos serveurs Web ou sites est en panne, nous devrions être en mesure d'identifier ce problème qui est probablement à l'origine des problèmes et de résoudre le problème.
Dans cet article, nous vous partagerons quelques étapes de dépannage qui sont quelques-unes des étapes courantes prises par un administrateur lorsqu'un site n'est pas accessible correctement, vous pouvez vous référer à ces étapes et résoudre le problème afin que vous puissiez mettre votre site en place et en cours d'exécution.
Prérequis
Pour résoudre ce problème, vous aurez besoin :
- Accès au serveur Linux, avec un utilisateur sudo.
Étape 1 :Vérifier l'état du serveur
Avant de procéder aux étapes mentionnées, nous devons d'abord vérifier si vous pouvez accéder au serveur lui-même. Parfois, le serveur lui-même peut être tombé en panne. Vous pouvez le vérifier avec la commande ping et ssh
ping your_server_ip
Si vous pouvez envoyer un ping à votre serveur et à son UP, vous obtiendrez le résultat ci-dessous
e2e@compaqlaptop:~$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=18.0 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=20.1 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=21.3 ms ^C --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 18.042/19.837/21.342/1.362 ms e2e@compaqlaptop:~$
Si votre serveur est en panne, dans ce cas, vous n'obtiendrez aucun ping. Vous pouvez vérifier la console de votre serveur pour toute erreur et redémarrer votre serveur via Myaccount
Remarque :Il se peut que vous ne puissiez parfois pas envoyer de ping au serveur même lorsque votre serveur est UP et cela peut être dû à la désactivation du ping sur votre serveur
Vous devriez également pouvoir vous connecter en SSH et vous connecter au serveur pour vérifier s'il est opérationnel. Vous pouvez accéder à votre serveur via ssh avec la commande ci-dessous
ssh [email protected]
si vous ne parvenez pas à vous connecter à votre serveur, il y a de fortes chances que votre serveur soit en panne ou en état de blocage et vérifiez la console de votre serveur pour toute erreur et redémarrez votre serveur via Myaccount
Etape 2 :Superviser votre serveur
Une charge élevée du processeur ou une consommation de mémoire peut rendre votre serveur insensible. Vous pouvez vous référer à cet article sur la façon de surveiller le serveur E2E via Zabbix
Une fois que vous avez identifié les anomalies dans l'utilisation des ressources de votre serveur, vous pouvez prendre les mesures nécessaires en conséquence pour éviter le problème.
Étape 3 :Vérifier les journaux
Avant de rechercher l'un des problèmes, nous devons d'abord vérifier les journaux de notre serveur Web et des composants associés. Si nous avons trouvé une erreur journaux ou tout journal suspect lors de l'accès logs, nous serons en mesure d'identifier les problèmes avec précision.
Les journaux seront généralement présents dans le répertoire /var/log . si vous avez un serveur Apache exécuté sur un serveur Ubuntu, par défaut les journaux seront conservés dans /var/log/apache2 . Vérifiez les fichiers dans ce répertoire pour voir quel type de messages d'erreur sont générés. Si vous utilisez une distribution qui fait référence à Apache en tant que httpd par défaut, les journaux seront conservés à
/var/log/httpd.log
Si vous utilisez Nginx comme serveur Web, les journaux sont généralement situés à l'emplacement ci-dessous
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/nginx/nginx_error.log
/var/log/nginx/access_error.log
Vérifiez les fichiers de ce répertoire pour voir quels types de messages d'erreur sont générés. Vous pouvez également vérifier les fichiers de configuration du serveur Web si vous avez configuré un chemin manuel pour les journaux.
Pour vérifier les derniers journaux générés à partir du serveur, vous pouvez exécuter ci-dessous tail commande comme indiqué dans l'exemple ci-dessous
tail -f /var/log/nginx/access.log
tail -f /var/log/httpd.log
Vous pouvez également afficher avec moins commande pour afficher les journaux complets comme ci-dessous, assurez-vous de modifier le chemin du fichier journal selon le vôtre dans la commande ci-dessous.
less /var/log/nginx/access.log
une fois que vous avez identifié le problème dans les journaux, vous pouvez facilement détecter le problème et le résoudre en conséquence.
Étape 4 :Assurez-vous que votre serveur Web est en cours d'exécution
Vous pouvez vérifier si vos services fonctionnent correctement. Une méthode pour vérifier si les services fonctionnent est la méthode préférée de la distribution consiste à vérifier avec la commande partagée ci-dessous.
Utiliser le statut commande pour vérifier si le service est en place ou non. Si le service ne fonctionne pas, vous pouvez le démarrer avec ci-dessous démarrer commande
Si vous utilisez une distribution qui fait référence à Apache en tant qu'Apache2, les commandes pour utiliser la fonctionnalité apache2 sont comme ci-dessous
service apache2 start
service apache2 stop
service apache2 restart
service apache2 reload
service apache2 status
Si vous utilisez une distribution qui fait référence à Apache en tant que httpd, les commandes sont les suivantes :
service httpd start
service httpd stop
service httpd restart
service httpd reload
service httpd status
Les commandes pour utiliser la fonctionnalité Nginx sont comme ci-dessous
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status
Etape 5 :Vérification de la syntaxe du serveur Web
Si votre serveur Web ne démarre pas, cela signifie qu'il peut y avoir un problème avec votre fichier de configuration.
Apache et Nginx ont tous deux besoin d'une syntaxe de directive correcte pour que les fichiers soient lus. Les fichiers de configuration se trouvent ci-dessous
Les répertoires de configuration par défaut pour Apache sont
Distributions Debian et Ubuntu :/etc/apache2/
Distribution Fedora, CentOS :/etc/httpd/
Les répertoires de configuration pour Nginx sont
/etc/nginx/
Chacun de ces serveurs Web vous offre également la possibilité de vérifier la syntaxe de configuration de vos fichiers. Pour vérifier la syntaxe de vos fichiers de configuration Apache sans avoir à redémarrer le serveur, vous pouvez exécuter la commande suivante sur les systèmes Debian et Ubuntu
apache2ctl -t
httpd -t
Pour vérifier la syntaxe de configuration sur Nginx, utilisez la commande ci-dessous
nginx -t
Une fois que vous avez exécuté la commande ci-dessus, vous recevrez un message comme Syntaxe OK ou Le test est réussi ,Cela signifie qu'il n'y a pas d'erreur dans la configuration de votre serveur Web. Si vous obtenez un message du type "échec du test", il existe un argument non valide fourni dans le fichier de configuration et qui doit être modifié.
Étape 6 :Votre backend de base de données fonctionne-t-il correctement ?
Si vous avez configuré votre site pour qu'il se connecte à une base de données comme MySQL, PostreSQL, MongoDB, etc., vous devez vous assurer qu'il est opérationnel. Vous pouvez le faire en vérifiant le serveur Web.
Exécutez la commande ci-dessous pour vérifier si votre base de données MySQL/Mongod est celle que vous utilisez.
service mysql status
service mysqld status
service mongod status
Alternativement, vous pouvez également vérifier avec la commande netstat ci-dessous
netstat -ntlp | grep mysql
Vous recevrez une sortie comme ci-dessous, si votre MySQL est opérationnel.
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ECOUTEZ 3356/mysqld
Étape 7 :Vérifiez si votre serveur Web/App est capable de se connecter vers le backend de la base de données
Même si votre serveur Web et votre serveur de base de données fonctionnent correctement, nous pouvons parfois rencontrer des problèmes de connectivité, car votre application ne pourra pas se connecter correctement à la base de données.
Par exemple, dans un site WordPress, les paramètres de connexion à la base de données peuvent être testés avec la configuration située dans le fichier wp-config.php. Vous devez vérifier que DB_NAME, DB_USER et DB_PASSWORD sont corrects pour que votre site se connecte à la base de données.
Vous pouvez tester si le fichier contient les informations correctes en essayant de vous connecter manuellement à la base de données en modifiant la valeur appropriée dans la commande ci-dessous
mysql -hDB_Host -uDB_USER -pDB_PASSWORD
Étape 8 :Assurez-vous que les ports sont ouverts
Même si toute la configuration et la connectivité sont correctes, parfois, vous ne pouvez pas accéder au site car les ports configurés doivent être accessibles. Les serveurs Web fonctionnent sur le port 80 pour le trafic Web normal et utilisent le port 443 pour le trafic crypté avec SSL.
Vous pouvez vérifier si les ports configurés sont ouverts avec la commande telnet
telnet your_server_ip 80
telnet your_server_ip 443
Vous obtiendrez une sortie comme ci-dessous si vos ports sont ouverts
e2e@compaqlaptop :~$ telnet xx.xx.xx.xx 80
Essayer xx.xx.xx.xx…
Connecté à xx.xx.xx.xx.
Le caractère d'échappement est '^]'.
Vous pouvez également vérifier si votre serveur App/Web est capable de se connecter au port de votre base de données sur le back-end. Le serveur MySQL s'exécute par défaut sur le port 3306
telnet your_database_server_ip 3306
Si vos ports Web ou vos ports de base de données ne sont pas accessibles, vous devez vérifier la configuration de votre pare-feu. Vous devrez peut-être ouvrir le port 80, le port 443 ou le port 3306 respectivement.
Étape 9 :Vérification des paramètres DNS
Vous devez également vous assurer que votre domaine pointe correctement vers l'IP du serveur. Si vous pouvez accéder au site avec l'IP et non avec votre nom de domaine, vous devrez peut-être jeter un œil à vos paramètres DNS.
Vous pouvez vérifier si votre site pointe vers la bonne adresse IP avec dig ci-dessous commande
dig A example.com +short
Vous obtiendrez la sortie comme ci-dessous
e2e@compaqlaptop :~$ creuser un exemple.com +court
xx.xx.xx.xx
e2e@compaqlaptop :~$
En dehors de cela, vérifiez vos fichiers d'hôte virtuel Apache ou les fichiers de blocage du serveur Nginx pour vous assurer qu'ils sont configurés pour répondre aux demandes de votre domaine.
Conclusion
Nous espérons que les conseils de dépannage mentionnés ci-dessus vous auront aidé à identifier et à résoudre certains des problèmes courants auxquels les administrateurs sont confrontés lorsqu'ils tentent de mettre leurs sites en service. Si vous rencontrez un problème avec les étapes mentionnées ci-dessus, n'hésitez pas à en discuter les dans les commentaires.