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.