GNU/Linux >> Tutoriels Linux >  >> Linux

Dépannage de base de Nginx

Dépannage de base de Nginx

Cet article présente un dépannage de base pour Nginx, l'un des serveurs HTTP les plus populaires. Le but est de corriger certaines des erreurs les plus courantes qui peuvent être présentes dans votre configuration Nginx.

Rechercher des erreurs de syntaxe ou des avertissements dans la configuration

Grâce à une simple commande, vous pouvez vérifier l'état du fichier de configuration Nginx :$ sudo systemctl config nginx La sortie montrera si le fichier de configuration est correct ou, si ce n'est pas le cas, elle montrera le fichier et la ligne où se trouve le problème.

$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed

Si vous n'avez pas la commande de service disponible dans votre système, vous pouvez choisir d'utiliser le -t Paramètre Nginx, qui teste également la syntaxe correcte du fichier de configuration, puis tente d'ouvrir les fichiers auxquels il est fait référence dans la configuration.$ sudo nginx -t

Vérifier que Nginx est en cours d'exécution

Pour vérifier l'état du service Nginx, vous pouvez utiliser la commande suivante :$ sudo systemctl status nginx Vous pouvez également utiliser les commandes génériques pour valider le statut du service :$ sudo /etc/init.d/nginx status

Vérifiez que les ports sont ouverts et que le service écoute

Vérifiez que les ports nécessaires sont ouverts et pour vérifier que le service Nginx les écoute, vous pouvez utiliser le lsof commande, idéalement dans les ports par défaut 80 et 443.

$ sudo lsof -i :80 -s TCP:LISTEN
nginx   1305 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1305 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)

Vérifier si Nginx traite les requêtes

Si Nginx écoute réellement les ports appropriés, l'étape suivante consiste à vérifier s'il traite les demandes, ce qui peut être fait en utilisant le curl outil en utilisant l'adresse IP, l'URL ou l'hôte local si votre configuration écoute sur l'hôte local :

$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive

Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0

Vérifier les journaux

Vérifiez les derniers journaux du service Nginx.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Vérifier les autorisations

Assurez-vous que Nginx dispose des autorisations appropriées pour accéder aux fichiers nécessaires.

$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html

Recharger le service

Si vous avez apporté des modifications au fichier de configuration qui n'ont pas été appliquées, vous pouvez recharger le service, démarrer de nouveaux processus Nginx et arrêter doucement les anciens travailleurs pour éviter un arrêt rapide et agressif.$ sudo service nginx reload Pour l'arrêt rapide qui n'attend pas la fin des processus, vous pouvez redémarrer Nginx.$ sudo service nginx restart

Activer le mode débogage

Dans le fichier de configuration (généralement /etc/nginx/nginx.conf ) modifier le niveau de journalisation pour error_log instruction :

server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}

Vous pouvez déboguer les règles de réécriture pour voir les résultats du traitement dans le journal des erreurs :

server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}

Vérifier la résolution DNS

Règles sur /etc/hosts ont la priorité sur les résolutions DNS. Vous pouvez vérifier les enregistrements DNS avec :$ host -t A website.com Vous pouvez également vérifier la résolution DNS complète :$ dig +trace website.com

Conclusions

Voici quelques étapes de dépannage de base pour certaines des erreurs les plus courantes avec Nginx. Vous pouvez également vous fier à la documentation si ces étapes ne résolvent pas votre problème, en profitant de la grande popularité de Nginx.


Linux
  1. Dépannage des problèmes matériels sous Linux

  2. Configuration de base de PHP 7 et Nginx sur Ubuntu 16.04 Linux

  3. Installer Nginx sur Fedora

  4. Installer Nginx sur Ubuntu

  5. getpwnam(www) a échoué dans /etc/nginx/nginx.conf

Authentification HTTP de base avec Nginx

Comment activer TLS 1.3 dans Nginx

Dépannage et pièges de SELinux

Comment activer IPv6 dans Nginx ?

Installer Nginx sur Ubuntu 18.04

Procédure :Dépannage de base d'IPTables