Nginx Essentials: Dépannage pour l’installation et la configuration

introduction

Nginx est un serveur Web gratuit et à source ouverte utilisé pour héberger des sites Web et des applications de toutes tailles. Le logiciel est reconnu pour son faible impact sur les ressources de mémoire, sa grande évolutivité et son architecture modulaire pilotée par les événements, capable d’offrir des performances sécurisées et prévisibles. Plus qu’un simple serveur Web, Nginx fonctionne également comme un équilibreur de charge, un cache HTTP et un proxy inverse.

Comme pour tout outil logiciel complexe, il peut être difficile de se souvenir des commandes spécifiques et des meilleures pratiques pour gérer un serveur Nginx ou résoudre les problèmes qui pourraient survenir. Ce guide de style aide-mémoire est destiné à servir de référence rapide à toute personne travaillant avec Nginx. Il couvrira certaines commandes de base de la gestion des services, ainsi que des astuces pour diagnostiquer et résoudre certains problèmes courants.

Comment utiliser ce guide:

  • Chaque section peut être utilisée indépendamment les unes des autres, alors n’hésitez pas à passer aux sections qui correspondent à vos besoins.

  • Les commandes de chaque section de ce guide sont autonomes et vous devez remplacer les valeurs rouges des exemples de commandes par vos propres valeurs.

  • Lorsque cela est pertinent, les sections de ce guide incluent des liens vers d’autres ressources que vous pouvez consulter pour plus d’informations.

  • Ce guide suppose que vous travaillez avec une version de Nginx installée à partir des référentiels par défaut d’une distribution basée sur Debian. Veuillez noter que certaines des conventions décrites dans ce guide ne sont pas présentes sur d’autres distributions ou dans des versions de Nginx provenant d’autres sources.

Installer Nginx

En utilisant + sudo apt-get, mettez à jour vos index de paquets, puis installez le service:

sudo apt-get update
sudo apt-get install nginx

Pour plus de détails sur le processus d’installation et de configuration, suivez notre didacticiel à l’adresse Comment installer Nginx sur Ubuntu 16.04.

Vérification de l’état de Nginx

Vous pouvez vérifier si Nginx est en cours d’exécution sur votre ordinateur en entrant ce qui suit dans votre invite de commande:

sudo systemctl status nginx

Activer Nginx

Par défaut, Nginx est configuré pour démarrer automatiquement au démarrage du serveur. Si vous le souhaitez, vous pouvez désactiver ce comportement en tapant:

sudo systemctl disable nginx

Pour réactiver le service pour qu’il démarre au démarrage, tapez:

sudo systemctl enable nginx

Arrêt, démarrage et rechargement de Nginx

Pour arrêter votre serveur Nginx déjà en cours d’exécution:

sudo systemctl stop nginx

Une fois le serveur arrêté, vous pouvez le redémarrer en tapant:

sudo systemctl start nginx

Pour arrêter puis redémarrer Nginx, tapez:

sudo systemctl restart nginx

Vous avez également la possibilité de recharger Nginx sans interrompre les connexions:

sudo systemctl reload nginx

Pour en savoir plus sur + systemd + et la commande + systemctl +, consultez cette https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal [introduction à l’essentiel systemd].

Création d’une racine de document pour un site statique

Lorsque vous utilisez le serveur Web Nginx, les blocs de serveur (similaires aux hôtes virtuels d’Apache) permettent d’héberger plusieurs domaines sur un même serveur. Chaque bloc de serveur a sa propre racine de document, un répertoire spécial que Nginx doit vérifier avant de diffuser le contenu du domaine.

Les commandes du bloc ci-dessous créeront une nouvelle racine de document, modifieront la propriété de la racine du document pour votre utilisateur non root et modifieront les autorisations de chaque sous-répertoire dans + / var / www / +.

sudo mkdir -p /var/www//html
sudo chown -R $USER:$USER /var/www//html
find /var/www -type d -exec chmod  {} \;

Dans cet exemple, nous veillons à ce que les répertoires racine du document disposent des privilèges de lecture et d’exécution globaux, mais vous devez remplacer la valeur `++ par une valeur différente afin de refléter vos besoins spécifiques.

Création d’une racine de document pour un site traité dynamiquement

Lorsque vous utilisez Nginx avec certains programmes (PHP-FPM, par exemple) pour créer un site traité dynamiquement, vous devrez peut-être ajuster les autorisations de certains fichiers pour autoriser le groupe + www-data +, voire la propriété, en particulier si nécessaire. être capable d’écrire dans le répertoire.

Les commandes du bloc ci-dessous créeront une nouvelle racine de document, modifieront la propriété de la racine du document dans le groupe + www-data + et modifieront les autorisations de chaque sous-répertoire de + / var / www +.

sudo mkdir -p /var/www//html
sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www -type d -exec chmod  {} \;

Pour en savoir plus sur les autorisations, consultez notre introduction aux autorisations Linux. Il peut également être utile de consulter notre didacticiel à l’adresse https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04 [ Comment configurer des blocs de serveur Nginx (hôtes virtuels) sur Ubuntu 16.04], qui fournit une approche détaillée de la création et de la modification des racines de document.

Activation des fichiers de configuration

Nous pouvons activer le fichier de configuration d’un bloc serveur en créant un lien symbolique allant du répertoire + sites-available + au répertoire + sites-enabled +, que Nginx lira au démarrage.

Pour ce faire, entrez la commande suivante:

sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

Après avoir lié les fichiers, rechargez Nginx pour refléter le changement et activer le fichier de configuration du bloc serveur:

sudo systemctl reload nginx

Résoudre les problèmes de mémoire de hachage

Nginx utilise des tables de hachage (organisées en «compartiments») pour traiter rapidement des données statiques telles que les noms de serveur ou les types MIME. Ainsi, si vous avez ajouté plusieurs noms de serveur, il est possible que la taille des compartiments de hachage de nom de serveur ne soit plus suffisante et que vous voyiez une erreur + nom_serveur_hash_bucket_size + lorsque vous apportez des modifications. Vous pouvez résoudre ce problème en ajustant une seule valeur dans votre fichier + / etc / nginx / nginx.conf +.

Pour ouvrir ce fichier de configuration, entrez:

sudo nano /etc/nginx/nginx.conf

Dans le fichier, recherchez la directive + server_names_hash_bucket_size +. Supprimez le symbole + # + pour supprimer la mise en commentaire de la ligne et augmentez la valeur de la directive par la puissance suivante:

/etc/nginx/nginx.conf

http {
   . . .

   server_names_hash_bucket_size ;

   . . .
}

Cela augmentera la taille des tables de hachage des noms de serveurs de Nginx et permettra au service de traiter tous les noms de serveurs que vous avez ajoutés. Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez Nginx pour refléter les modifications.

Vérification de votre fichier de configuration

Lorsque vous apportez des modifications à votre fichier de configuration Nginx, il est important de vérifier si vous avez oublié des erreurs de syntaxe. Cela peut être fait en lançant la commande suivante:

sudo nginx -t

S’il y a des erreurs dans votre fichier de configuration, le résultat de la commande vous indiquera exactement où l’erreur a été trouvée dans le fichier. Inversement, s’il n’ya pas d’erreur de syntaxe dans l’un de vos fichiers de configuration nginx, vous verrez une sortie semblable à celle-ci:

Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si aucune erreur n’a été trouvée et que vous souhaitez appliquer vos modifications immédiatement, redémarrez le service:

sudo systemctl restart nginx

Fichiers et répertoires importants de Nginx

Lorsque vous passez du temps avec Nginx, il est possible que vous accédiez fréquemment aux fichiers et répertoires suivants:

Contenu

  • + / var / www / html: il s’agit de l’emplacement de la racine du document par défaut à partir de laquelle le contenu Web réel est servi. La racine du document peut être modifiée en modifiant les fichiers de configuration Nginx.

Configuration du serveur

  • + / etc / nginx / +: Le répertoire de configuration par défaut de Nginx où tous vos fichiers de configuration Nginx peuvent être trouvés.

  • + / etc / nginx / nginx.conf +: Le fichier de configuration principal de Nginx. Ceci peut être demandé pour apporter des modifications globales à la configuration de Nginx.

  • + / etc / nginx / sites-available / default +: le fichier de blocage du serveur par défaut de Nginx. D’autres blocs de serveur par site sont également stockés dans le répertoire + sites-available +, bien qu’ils ne soient pas utilisés sauf s’ils sont liés dans le répertoire + sites-enabled +.

  • + / etc / nginx / sites-enabled / +: Le répertoire dans lequel les «blocs de serveur» activés par site sont stockés. Celles-ci sont généralement créées en liant des fichiers de configuration situés dans le répertoire + sites-available +.

Journaux du serveur

  • + / var / log / nginx / access.log +: chaque demande adressée à votre serveur Web est enregistrée dans ce fichier journal, sauf si Nginx est configuré pour procéder autrement.

  • + / var / log / nginx / error.log +: Toutes les erreurs Nginx seront enregistrées dans ce journal.

  • Pour accéder aux journaux systemd du processus Nginx, exécutez la commande suivante:

sudo journalctl -u nginx

Conclusion

Ce guide couvre les commandes et les pratiques de base pour la gestion d’un serveur Nginx, notamment les procédures de démarrage, d’arrêt et de vérification du statut de Nginx, la recherche du répertoire racine du document d’un site Web et la vérification de la syntaxe d’un fichier de configuration Nginx. Pour en savoir plus sur l’utilisation de Nginx, nous vous recommandons de parcourir les didacticiels suivants.