GNU/Linux >> Tutoriels Linux >  >> Linux

Problèmes de serveur courants et solutions

L'une des utilisations les plus courantes du serveur en ligne consiste à héberger des sites Web. Ceci est rendu possible par un logiciel qui sert entre autres du contenu http. Dans cet article, j'expliquerai quelques astuces pour détecter et réparer les problèmes dans les systèmes de services Web GNU/Linux . Pour plus de simplicité, nous nous concentrerons sur apache qui est le plus couramment utilisé.

Habituellement, la première nouvelle que nous avons lorsqu'il y a des problèmes sur le serveur Web est que les navigateurs ne peuvent pas afficher le contenu. Avant d'entrer dans le serveur, vérifiez si le problème est DNS et parce que le nom de domaine ne résout pas l'adresse IP de notre serveur Web. Cela peut être vu en utilisant des applications telles que ping, host, nslookup dig, etc. selon ce que nous avons sous la main.
Si nous sommes sûrs que le domaine DNS fonctionne et pointe vers le service Web IP, nous, en tant qu'administrateurs, accédez-y et essayez de comprendre et de résoudre le problème.

Avant d'entrer dans le torchon, comme première information nous disons que le protocole http fonctionne sur le port 80 de notre serveur. C'est un fait important car sachant que nous pouvons facilement obtenir des données sur les processus qui s'exécutent.
Une fois à l'intérieur, la première chose que nous faisons est d'utiliser la commande "netstat" qui affiche une liste des ports et des connexions établis sur notre serveur :

Comme indiqué, en utilisant avec la commande "grep", pour filtrer par "LISTEN" et "80" nous montre s'il y a un processus à l'écoute sur le port 80, et utilise le service "httpd". Si vous deviez supprimer le "| grep LISTEN", nous affichons également les connexions qui sont toujours actives dans ce port, parmi lesquelles nous pouvons trouver des connexions établies, en attente ou fermées.

De plus, nous avons également une commande appelée "lsof" qui peut nous montrer encore plus d'informations sur les utilisateurs et le nombre de processus en cours d'exécution. Cette commande affiche des informations sur les fichiers ouverts sur le système Linux Linux car tout fonctionne à travers les fichiers pour nous est très utile. Dans ce cas, nous devons dire que regarder les fichiers ouverts liés au port 80 et nous le ferons en spécifiant "-i 80" dans le système en tant qu'utilisateurs administrateurs :

Ce qui précède est une sortie normale d'un serveur où personne ne regarde les pages hébergées. Ici, nous pouvons voir comment l'utilisateur exécutant le processus est "apache" qu'il y a un processus père et 6 processus enfants en attente de demandes pour servir le contenu. Si quelqu'un recherche une page où il apparaît plus "ECOUTE" apparaît maintenant, indiquant la source de la connexion entre autres.

Si notre serveur ne voit aucun processus en cours d'exécution sur le port 80 avec l'une des commandes ci-dessus, cela indique que le service Web ne fonctionne pas comme il se doit et que nous devrons donc le redémarrer. Cela dépend de quelle distribution Linux allons-nous l'utiliser en utilisant un nom ou d'autres distributions basées sur Redhat et Centos sont faites avec "httpd" et celles basées sur Debian comme Ubuntu, avec "apache2"

Dans notre cas, nous utilisons httpd car il s'agit d'un Centos, et comme le serveur Web est démarré correctement, nous allons donc vérifier maintenant s'il y a des processus en cours d'exécution et essayer de visualiser à nouveau les sites dans le navigateur.

Dans le cas unbootable peut nous montrer un message d'erreur qui serait analysé en détail pour déterminer exactement ce qui se passe, car il existe de nombreuses possibilités. Nous devrions également consulter le journal des erreurs pour voir si vous avez laissé un message d'indication. Cela peut être fait avec la commande cat ou tail ou n'importe quel éditeur de texte de console, tel que vim ou nano, ou emacs.

Une application très utile de ce qui précède est "tail" car avec le "-f" derrière nous permet de voir les journaux en temps réel, par exemple :

tail -f /var/log/httpd/error_log

Si nous le laissons fonctionner sur une console et que l'autre essaie de démarrer le service ou d'accéder au navigateur, nous pouvons voir les erreurs en temps réel, ce qui sera très utile.
Parfois, le serveur Web semble être démarré et fonctionner normalement avec ses processus d'écoute, mais les sites Web ne fonctionnent toujours pas correctement et n'affichent aucun contenu dans le navigateur.
Dans ces cas, pour voir ce qui se passe, la priorité, comme indiqué ci-dessus, est de consulter le journal des erreurs, qui affiche normalement des informations détaillées sur les problèmes qui empêchent le fonctionnement. Après avoir affiché l'erreur, à moins que nous ne sachions que c'est le cas, il est normal d'utiliser un moteur de recherche comme Google pour obtenir des informations sur cette erreur et un moyen de la corriger. Si aucun message ne s'affiche toujours, il convient d'arrêter toutes les instances du serveur Web et de le lancer en mode débogage :

httpd -e DEBUG

Avec cela, si nous devrions être en mesure de voir toute erreur interne pour aider à sa résolution. Dans tous les cas, si après avoir suivi toutes ces étapes, vous ne parvenez pas à faire fonctionner votre serveur Web, nous vous recommandons de vous adresser à des professionnels capables de résoudre le problème rapidement et efficacement.
Enfin, nous mettrons une liste des problèmes les plus courants erreurs que nous pouvons trouver le temps de lever un service Web abandonné et quelques idées sur la façon de les corriger. Les erreurs qui peuvent entrer dans le journal lorsque le problème est la configuration Web ou le code que nous laissons pour une autre entrée secondaire.

1. "make_sock:could not bind to address 0.0.0.0:80 no listening sockets available"
Si cette erreur apparaît au démarrage, le service Web fonctionne probablement déjà car il y a quelque chose qui écoute sur le port 80. Si nous avons des problèmes, nous essayez de l'arrêter d'abord avec un "service httpd/apache2 stop", mais en datant toujours la même erreur devrait tuer le processus qui occupe le port 80, en apportant le numéro pid décrit en premier ci-dessus avec la commande lsof ou netstat et en utilisant le "kill - s 9" commande pid "pour le forcer à s'arrêter.

2. "Aucun fichier ou répertoire de ce type :apache2 :Impossible d'ouvrir le fichier journal des erreurs /var/log/apache2/error.log"
Avec cette erreur, le serveur Web indique que le démarrage n'a pas pu écrire dans le journal qui est attribué dans sa configuration, soit parce que le dossier n'existe pas, soit parce qu'il ne peut pas créer le fichier, soit parce que le fichier existe mais que les permis/utilisateurs ne sont pas corrects. Pour le résoudre, nous devons analyser tous ces facteurs et permettre à l'utilisateur du serveur Web d'écrire dans ce fichier et de relancer le processus.

3. "Démarrage de httpd :erreur de syntaxe sur la ligne xxx de /etc/httpd/conf/httpd.conf :DocumentRoot doit être un répertoire"
Parfois, l'erreur nous redirige vers un service Web de configuration de point exact. Dans ce cas, nous allons vérifier le fichier de configuration en question et analyser celui qui peut échouer exactement sur la ligne indiquée. Dans ce cas, le "DocumentRoot" qui est la racine du serveur Web n'était pas accessible par ceci, étant similaire à la solution du point 2.


Linux
  1. Scénarios Linux en temps réel et problèmes avec leurs solutions

  2. Créer et gérer des instantanés

  3. Principes de base des Vhosts et des blocs de serveur

  4. Qu'est-ce qu'une erreur de serveur interne 500

  5. Problèmes d'utilisation du tri et de la communication

Tunnellisation et proxy SSH

Client et serveur NIS

Problèmes Windows courants :activation du serveur de gestion des clés

Fondamentaux de la virtualisation VMware – VMware Server et VMware ESXi

Top 20 des meilleurs logiciels et solutions de serveur de messagerie Linux

Débogage d'iptables et des pièges courants du pare-feu ?