Comment installer Nginx sur Ubuntu 24.04/22.04/20.04

NGINX est un serveur Web et un serveur proxy inverse hautes performances connu pour sa stabilité, son riche ensemble de fonctionnalités, sa configuration simple et sa faible consommation de ressources. Il est largement utilisé pour diffuser du contenu statique, équilibrer la charge et gérer de nombreuses connexions simultanées, ce qui en fait un choix populaire pour de nombreuses applications et services Web.

Pour installer NGINX sur Ubuntu 24.04, 22.04 ou 20.04 à l'aide du terminal de ligne de commande, vous pouvez suivre des étapes simples pour que votre serveur Web soit opérationnel. Ce guide vous guidera tout au long du processus, garantissant que vous exploitez les puissantes capacités de NGINX sur votre système Ubuntu.

Mettre à jour Ubuntu avant l'installation de Nginx

Il est crucial de vous assurer que votre système est à jour avant de commencer le processus d'installation. Cette pratique permet d'éviter les conflits lors de l'installation ou de la configuration de Nginx.

Pour mettre à jour votre système, exécutez la commande suivante :

sudo apt update && sudo apt upgrade

Nginx est disponible par défaut dans le référentiel Ubuntu, simplifiant le processus d'installation. Cependant, si vous préférez installer la ligne principale Nginx ou une version plus récente de Nginx stable, reportez-vous à notre tutoriel, «Comment installer la ligne principale Nginx sur Ubuntu", puis revenez ici pour terminer la configuration et l'installation.

Sélectionnez le type d'installation de Nginx

Option 1 : installer Nginx sur Ubuntu via la commande APT (installation standard)

Pour commencer l'installation standard de Nginx, exécutez la commande suivante dans le terminal :

sudo apt install nginx -y

Option 2 : installer Nginx sur Ubuntu via la commande APT (installation complète)

Pour les utilisateurs intéressés par le nginx-full installation, qui comprend des modules supplémentaires, exécutez la commande suivante :

sudo apt install nginx nginx-full -y

Option 3 : installer Nginx-Extras sur Ubuntu (situationnel et facultatif)

Pour installer le nginx-extras version, qui fournit encore plus de modules, exécutez cette commande :

sudo apt install nginx-extras -y

Note: N'installez « nginx-extras » que si vous avez l'intention de conserver la version Ubuntu de Nginx. Évitez d'installer ce package si vous envisagez de mettre à jour vers une version en amont de Nginx.org ou un PPA LaunchPAD maintenu par Nginx.

Vérifier l'installation de Nginx :

Une fois l'installation terminée, vérifiez l'état de Nginx pour garantir une installation correcte et sans erreur :

systemctl status nginx

Si, par hasard, le service n'est pas actif, utilisez la commande suivante pour activer immédiatement le service Nginx.

sudo systemctl enable nginx --now

Configurer le pare-feu UFW pour Nginx

Ubuntu utilise UFW (Uncomplicated Firewall) comme pare-feu par défaut. Pour les serveurs Web publics, la configuration des règles UFW est essentielle pour plus de sécurité.

Installez UFW (s'il n'est pas installé) :

Pour installer UFW, exécutez la commande suivante :

sudo apt install ufw -y

Activer UFW

Activez UFW à l'aide de cette commande :

sudo ufw enable

Par défaut, UFW bloque toutes les connexions entrantes et autorise toutes les connexions sortantes.

Répertorier les profils d'applications installés avec UFW

Pour afficher la liste des applications installées, entrez la commande suivante :

sudo ufw app list

Configuration des règles UFW pour Nginx :

Vous pouvez configurer UFW pour autoriser les connexions à Nginx sur HTTP (Port 80), HTTPS (Port 443) ou les deux (Complet).

HTTP (Port 80) uniquement :

sudo ufw allow 'Nginx HTTP'

HTTPS (Port 443) uniquement :

sudo ufw allow 'Nginx HTTPS'

Autoriser HTTP et HTTPS (complet) :

sudo ufw allow 'Nginx FULL'

Confirmez que les règles de pare-feu sont actives avec la commande suivante.

sudo ufw status

Tester la configuration de Nginx

Après avoir configuré UFW, assurez-vous que vous pouvez accéder à la page de destination Nginx dans votre navigateur Web en accédant à l'adresse IP de votre serveur :

http://your_server_ip

Vous pouvez également essayer d'accéder au localhost :

http://localhost

Si vous avez tout configuré correctement, la page de destination par défaut de Nginx devrait apparaître.

Créer et configurer le répertoire Nginx pour le site Web

Contrairement aux hôtes virtuels Apache, les blocs de serveur Nginx vous permettent d'héberger plusieurs domaines sur un seul serveur en encapsulant les détails de configuration. Nous utiliserons l'exemple de domaine example.comin this tutorial, mais vous devez le remplacer par votre nom de domaine.

Nginx est livré avec un logiciel préconfiguré www répertoire situé à /var/www/html/.

Créez un répertoire pour votre domaine

Tout d'abord, créez un répertoire pour votre domaine à l'aide du -p flag pour créer tous les répertoires parents nécessaires :

sudo mkdir -p /var/www/example.com/

Attribuer la propriété pour le répertoire Nginx

Ensuite, attribuez la propriété du répertoire à l'utilisateur et au groupe appropriés :

sudo chown -R www-data:www-data /var/www/example.com/

Configurer la page HTML de test pour Nginx

Créez une page de test pour confirmer que votre serveur Nginx fonctionne correctement :

sudo nano /var/www/example.com/index.html

Dans l'éditeur nano, collez le code HTML suivant pour créer une page de test simple :

<html>
 <head>
  <title>Welcome to Linuxcapable.com</title>
 </head>
 <body>
   <h1>Success!  The tutorial server block is working! Thanks Linuxcapable.com :D</h1>
 </body>
</html>

Enregistrez le fichier avec CTRL+O et sors avec CTRL+X.

Créer un bloc de serveur Nginx

Maintenant, créez un bloc serveur pour votre site Web :

sudo nano /etc/nginx/sites-available/example.com.conf

Collez l'exemple de code suivant dans le fichier de configuration. Il s'agit d'un exemple de base HTTP uniquement à des fins de test :

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;

  index index.html index.htm index.nginx-debian.html;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

Cet exemple configure votre serveur pour écouter sur le port 80 à la fois example.com et www.example.com. Remplacez le répertoire racine par le chemin correct que vous avez créé précédemment.

Activer le blocage du serveur Nginx

Pour activer le blocage du serveur Nginx, vous devez créer un lien symbolique à partir du sites-available répertoire vers le sites-enabled répertoire dans votre installation Nginx :

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Une fois ces étapes terminées, vous avez configuré avec succès un bloc de serveur Nginx pour votre domaine. N'oubliez pas de remplacer example.com détails associés avec votre nom de domaine et les chemins de répertoire.

Configuration finale et test avec Nginx

Dans cette dernière étape, vous modifierez le fichier de configuration Nginx par défaut et testerez votre serveur pour vous assurer qu'il fonctionne correctement.

Modifier le fichier de configuration Nginx

Ouvrez la valeur par défaut nginx.conf déposer:

sudo nano /etc/nginx/nginx.conf

Trouvez la ligne suivante dans le http {} section de la nginx.conf déposez-le et décommentez-le :

server_names_hash_bucket_size 64;

Enregistrez les modifications avec CTRL+O et sors avec CTRL+X.

Le server_names_hash_bucket_size La directive augmente la mémoire allouée à l’analyse des noms de domaine. Veillez à ne pas définir cette valeur trop élevée.

Tester la configuration de Nginx

Avant de redémarrer Nginx, testez la configuration pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :

sudo nginx -t

Le résultat devrait être s'il n'y a pas d'erreurs dans la syntaxe :

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

Vérifier le blocage du serveur Nginx

Ouvrez votre navigateur Web et entrez le nom de domaine de votre serveur. Vous devriez voir votre page de test personnalisée, indiquant que votre bloc de serveur est actif et fonctionne correctement.

Conseils et commandes Nginx supplémentaires

Sécurisez les fichiers du serveur Web Nginx

De nombreux utilisateurs négligent souvent de définir les autorisations appropriées pour les fichiers et les dossiers, certains accordant même un accès complet en lecture, écriture et exécution au public. Évitez cela en utilisant les commandes suivantes pour établir des autorisations sécurisées pour tous les fichiers et dossiers. Ensuite, ajustez les autorisations pour des fichiers ou des répertoires spécifiques si nécessaire (par exemple, phpBB nécessite de définir certains dossiers sur 777).

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Assurez-vous de remplacer /var/www/example.com/ avec l'emplacement de votre répertoire racine.

Note: N'oubliez pas que cela ne rend pas votre serveur Nginx entièrement sécurisé ; il atténue un risque commun parmi tant d’autres.

Sécuriser Nginx avec le certificat gratuit SSL Let's Encrypt

Exécutez votre serveur Nginx avec HTTPS à l'aide d'un certificat SSL. Let's Encrypt, fourni par l'Internet Security Research Group (ISRG) à but non lucratif, représente l'une des meilleures options. Cette autorité de certification gratuite, automatisée et ouverte prend en charge les connexions sécurisées et cryptées.

Tout d'abord, installez le certbot emballer:

sudo apt install python3-certbot-nginx

Une fois installé, lancez le processus de création de certificat :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Cette configuration inclut des redirections HTTPS 301 forcées, un en-tête Strict-Transport-Security et l'agrafage OCSP. Assurez-vous d'ajuster l'e-mail et le nom de domaine si nécessaire.

Votre URL utilisera désormais HTTPS (par exemple, https://www.example.com) au lieu de HTTP. Si vous utilisez toujours l'ancienne URL HTTP, elle sera automatiquement redirigée vers HTTPS.

Facultatif : renouvellement automatique des certificats pour Nginx

Pour renouveler automatiquement les certificats, configurez une tâche cron. Certbot propose un script à cet effet, et vous pouvez tester ses fonctionnalités avec un essai à blanc :

sudo certbot renew --dry-run

Si tout fonctionne comme prévu, ouvrez votre crontab à l'aide de la commande suivante :

sudo crontab -e

Spécifiez la durée du processus de renouvellement automatique, en vérifiant au minimum quotidiennement. Si le certificat nécessite un renouvellement, le script le mettra à jour :

00 00 */1 * * /usr/sbin/certbot-auto renew

Accéder aux journaux du serveur Nginx

Répertoire des journaux Nginx

Nginx stocke ses journaux dans un répertoire par défaut, sauf si vous avez spécifié un emplacement différent. Vous pouvez afficher les journaux à l'aide des commandes suivantes.

Tout d’abord, accédez au répertoire des journaux et répertoriez les fichiers :

cd /var/log/nginx && ls -l

Vous devriez trouver les fichiers d'accès et d'erreur suivants :

Emplacement du journal d'accès Nginx :

/var/log/nginx/access.log

Emplacement du journal des erreurs Nginx :

/var/log/nginx/error.log

Pour surveiller les journaux en temps réel, utilisez le tail -f /location/of/log commande:

Exemple de commande :

tail -f /var/log/nginx/access.log

Notez que vous devrez peut-être utiliser sudo avec cette commande.

Pour afficher un nombre spécifique de lignes (par exemple, les 30 dernières lignes), ajoutez le -n 30 drapeau:

sudo tail -f /var/log/nginx/access.log -n 30

Ce ne sont là que quelques exemples de la façon de lire les journaux.

Configurer la rotation des journaux Nginx

Nginx configure automatiquement la rotation des journaux avec des rotations quotidiennes par défaut. Pour modifier ces paramètres, accédez au fichier :

sudo nano /etc/nginx/logrotate.d/nginx

Le fichier comprend des paramètres réglables tels que la fréquence de rotation et la quantité de rétention des journaux. Conservez les paramètres par défaut, sauf si des exigences spécifiques en matière de journaux pour un logiciel de surveillance tel que fail2ban nécessitent des modifications.

Les paramètres les plus courants à modifier sont :

  • Tous les jours: Cela peut être modifié en Hebdomadaire ou Mensuel, mais il est recommandé de le faire quotidiennement pour faciliter la gestion des fichiers journaux.
  • Rotation 14 : Détermine le nombre de journaux à conserver. Remplacez-le par 7 pour stocker seulement une semaine de journaux.

Évitez de modifier d'autres paramètres à moins d'être sûr de leurs fonctions.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Mettre à jour Nginx

Nginx se met à jour automatiquement lorsqu'une nouvelle version est disponible dans les référentiels. Avant la mise à niveau, sauvegardez votre répertoire Nginx ou, au minimum, le nginx.conf déposer.

Pour sauvegarder nginx.conf:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Pour sauvegarder l'intégralité du dossier Nginx :

sudo cp /etc/nginx/ /etc/nginx-bkup

Ensuite, exécutez la commande de mise à jour standard :

sudo apt update

Si une mise à niveau est disponible, exécutez-la :

sudo apt upgrade 

La sauvegarde avant la mise à niveau est cruciale, en particulier pour les grandes configurations Nginx. Pensez à utiliser Github ou Gitlab pour des options de sauvegarde supplémentaires.

Supprimer Nginx

Si vous décidez de supprimer le serveur Web, arrêtez-le d'abord :

sudo systemctl disable nginx --now

Ensuite, utilisez la commande suivante pour supprimer complètement Nginx :

sudo apt remove nginx

Certains fichiers restants peuvent rester dans le /etc/nginx dossier. Supprimez ce répertoire avec :

sudo rm -R /etc/nginx/

Cette action supprimera vos fichiers de configuration personnalisés, alors sauvegardez-les si vous les utilisez à nouveau (par exemple, avec Github ou un service similaire).

Conclusion

Avec les étapes décrites dans notre guide, Nginx devrait maintenant être installé avec succès sur votre serveur Ubuntu, 24.04, 22.04 ou 20.04. Vous avez appris le processus d'installation et comment configurer une configuration de base pour faire fonctionner votre serveur. Des mises à jour régulières et des contrôles de sécurité sont essentiels au maintien d'un serveur robuste. N'hésitez pas à approfondir les fonctionnalités étendues de Nginx pour optimiser davantage votre configuration.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire