Lorsque vous avez terminé d’écrire du code pour votre site Web ou votre application Web, vous devez le placer à un endroit où il peut s’exécuter et fournir du contenu à vos utilisateurs. C’est là que le logiciel de serveur Web entre en jeu. Une simple recherche Google sur un logiciel de serveur Web vous apportera une liste complète de solutions parmi lesquelles choisir.
Dans ce tutoriel, nous nous concentrons sur Nginx; et plus précisément sur la façon dont vous pouvez le faire fonctionner sur Ubuntu 18.04. Nginx est l’un des logiciels de serveur Web les plus populaires au monde. En fait, il occupe une place dans le top cinq sur Opensource.com classements. Il est chargé d’assurer la disponibilité et l’évolutivité des sites les plus fréquentés sur Internet. Il garantit la sécurité et vous pouvez l’utiliser comme proxy inverse. Alors, comment pouvez-vous installer Nginx sur Ubuntu 18.04?
Prérequis
Bien sûr, vous avez déjà un ordinateur qui exécute Ubuntu 18.0.4; et vous avez un utilisateur non root avec les privilèges sudo. Sinon, rendez-vous sur ce lien pour télécharger Ubuntu 18.0.4, puis suivez les guides sur la configuration initiale du serveur avec Ubuntu pour créer un compte non root. Une fois que vous avez un compte, vous devez vous connecter en tant qu’utilisateur non root, puis nous pourrons passer aux étapes suivantes.
Étape 1 – Installer Nginx
Ubuntu est basé sur Debian. Pour installer les paquets deb à partir de la ligne de commande, vous pouvez utiliser les commandes apt ou dpkg. Nous utiliserons la commande apt car elle est plus populaire. La commande Apt permet aux utilisateurs d’installer des paquets disponibles à partir des dépôts par défaut de la distribution Linux spécifique qu’ils exécutent. Dans ce cas, nous avons Nginx disponible sur les dépôts par défaut d’Ubuntu 18.04, nous pouvons donc continuer. En règle générale, maintenant et lors de l’installation d’un paquet sur une distribution Linux, vous devez d’abord mettre à jour ; entrez la commande suivante dans le terminal pour mettre à jour:
sudo apt update
Ensuite, pour installer Nginx, entrez la commande suivante:
sudo apt install nginx
Suivez les instructions, et Nginx sera installé sur votre serveur avec les dépendances nécessaires.
Étape 2 – Ajustez le pare-feu
L’outil de configuration de pare-feu par défaut pour Ubuntu est UFW. UFW signifie pare-feu simple et il a été développé pour faciliter la configuration du pare-feu. Par défaut, Nginx s’enregistre en tant que service auprès d’UFW après l’installation, ce qui facilite la configuration de l’accès à Nginx. Tout d’abord, activez l’UFW en entrant la commande suivante :
sudo ufw enable
La commande suivante répertorie la configuration de l’application autorisée par l’UFW :
sudo ufw app list
Voici une capture d’écran de ce à quoi pourrait ressembler votre terminal :
Il affiche 3 profils disponibles pour Nginx. Ils sont décrits ci–dessous:
- Nginx Full – il ouvre les ports 80 et 443. Le port 80 est destiné au trafic normal / non chiffré, c’est-à-dire http. Le port 443 est destiné au trafic crypté TLS/SSL. c’est-à-dire https.
- HTTP Nginx – il ouvre uniquement le port 80.
- Nginx HTTPS – il ouvre uniquement le port 443.
À titre de recommandation, vous ne devez activer que le profil qui autorisera le trafic que vous avez configuré pour votre application Web. Dans ce cas, nous irons avec Nginx HTTP (port 80) car nous n’avons pas configuré SSL. La commande suivante l’active :
sudo ufw allow 'Nginx HTTP'sudo ufw allow 'OpenSSH'
Pour vérifier la modification, entrez la commande suivante:
sudo ufw status
Votre terminal devrait afficher quelque chose de similaire à la capture d’écran ci-dessous. Notez que le trafic HTTP est autorisé partout :
Étape 3 – Vérification de votre serveur Web
Après avoir installé Nginx sur Ubuntu 18.04, le service démarre automatiquement. Vous pouvez le tester en entrant la commande suivante dans votre terminal :
systemctl status nginx
Votre terminal devrait afficher quelque chose comme ceci:
Cela montre que le service a été démarré automatiquement et qu’il est en cours d’exécution. Comme vous le savez déjà, le but principal du logiciel serveur est de servir du contenu. Afin de tester cet objectif, vous devrez demander une page. Vous pouvez le faire en accédant à l’adresse IP de votre serveur à partir du navigateur, qui devrait afficher la page de destination Nginx par défaut. Si vous ne connaissez pas l’adresse IP de votre serveur, voici quelques commandes pour vous aider à l’obtenir :
ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Voici une autre commande que vous pouvez utiliser. Il vous donne l’adresse IP publique vue des emplacements sur Internet:
curl -4 icanhazip.com
La première commande vous obtient une adresse comme indiqué dans le terminal ci-dessous. Ensuite, copiez-le et testez-le dans votre navigateur:
Votre navigateur charge la page Nginx par défaut qui ressemble à la capture d’écran suivante. Cela montre que votre serveur Nginx est en cours d’exécution :
Étape 4 – Commandes de gestion Nginx de base
Vous avez déjà vu la commande qui vérifie l’état de Nginx:
systemctl status nginx
Maintenant que le serveur est opérationnel, voici quelques commandes supplémentaires que vous devez garder à portée de main pour gérer le service Nginx. Ces commandes fonctionnent non seulement sur Ubuntu 18.04, mais également sur toutes les distributions Linux.
Pour arrêter le serveur, entrez la commande suivante :
sudo systemctl stop nginx
Pour démarrer le serveur, entrez la commande suivante :
sudo systemctl start nginx
Chaque fois que vous apportez des modifications importantes telles que le changement de ports ou d’interfaces, vous devez redémarrer le serveur Web. La commande ci-dessous redémarre le serveur:
sudo systemctl restart nginx
Chaque fois que vous apportez des modifications mineures à la configuration, comme l’édition de blocs de serveur, Nginx peut recharger sans interrompre les connexions. Voici la commande pour recharger:
sudo systemctl reload nginx
Nginx démarre automatiquement le serveur lorsque votre système d’exploitation Ubuntu démarre. Cependant, si vous souhaitez modifier ce paramètre, vous pouvez désactiver le service en entrant la commande ci-dessous :
sudo systemctl disable nginx
Et vous pouvez réactiver le service pour qu’il démarre automatiquement lors du prochain démarrage de votre machine en entrant:
sudo systemctl enable nginx
Étape 5 – Configuration des blocs de serveur
Vous pouvez héberger plusieurs sites Web (domaines) sur un serveur Web. Les blocs de serveur vous aideraient à y parvenir. Si vous avez déjà utilisé Apache, les blocs de serveur dans Nginx peuvent être comparés aux serveurs virtuels Apache. Prêt à l’emploi, Nginx est livré avec un bloc de serveur configuré pour s’exécuter à partir du répertoire / var/www /html, celui qui a chargé la page Nginx par défaut dans une section ci-dessus. Ce bloc de serveur convient à l’exécution d’un seul site. Cependant, l’exécution de nombreux sites sera un problème.
Nous voulons créer un autre site sur le même serveur et l’appeler samplesite.com (ce n’est qu’un exemple, vous devez le remplacer par votre propre nom de domaine).
Dans le répertoire /var/www/, créez un autre répertoire pour samplesite.com . Laissez la valeur par défaut /var/www/html pour servir les requêtes qui ne correspondent à aucun autre site. La commande ci-dessous crée le répertoire pour samplesite.com comme nous l’avons décrit. L’indicateur –p permet de s’assurer que la commande crée tous les répertoires parents nécessaires:
sudo mkdir -p /var/www/samplesite.com/html
Pour autoriser l’accès au répertoire, vous devez attribuer la propriété avec la variable d’environnementUSERUSER:
sudo chown -R $USER:$USER /var/www/samplesite.com/html
Pour vérifier que les autorisations pour vos racines web sont correctes, entrez la commande suivante:
sudo chmod -R 755 /var/www/samplesite.com
Ensuite, laissez essayez de créer un index simple.html dans le samplesite.com annuaire. Vous pouvez ouvrir l’éditeur nano comme suit :
nano /var/www/samplesite.com/html/index.html
La commande ouvre un éditeur dans votre terminal, ajoutez le code suivant:
<html><head><title>Welcome to samplesite.com!</title></head><body><h1>Success! The samplesite.com server block is running fine!</h1></body></html>
Tapez Ctrl +O, puis appuyez sur Entrée pour enregistrer le fichier. Tapez Ctrl+X pour fermer l’éditeur.
Après cela, vous pouvez créer le bloc de serveur. Plutôt que d’éditer et d’encombrer le fichier de configuration par défaut, il est recommandé d’en créer un nouveau dans /etc/nginx/sites-available/samplesite.com. Entrez la commande suivante pour ouvrir l’éditeur nano:
sudo nano /etc/nginx/sites-available/samplesite.com
Dans l’éditeur, entrez le code suivant, modifié pour le répertoire que vous avez créé. Notez que le nom racine et le nom_serveur correspondent à notre répertoire et au domaine que nous voulons servir:
server { listen IP_ADDRESS:80; listen :80; root /var/www/samplesite.com/html; index index.html index.htm index.nginx-debian.html; server_name samplesite.com samplesite.com; location / { try_files $uri $uri/ =404; }}
Ensuite, enregistrez et fermez le fichier.
Nginx lit les fichiers de configuration à partir du répertoire activé par les sites, vous devez donc créer un lien symbolique à partir de votre nouveau bloc de serveur vers le répertoire activé par les sites. La commande suivante le fera :
sudo ln -s /etc/nginx/sites-available/samplesite.com /etc/nginx/sites-enabled/
Vous avez maintenant deux blocs de serveur qui peuvent servir deux sites Web sur un serveur Nginx.
La commande suivante répond aux requêtes sur les domaines samplesite.com et www.samplesite.com .
curl samplesite.com
Et celui par défaut répondra à toutes les demandes touchant le port 80 qui ne correspondent à aucun des deux blocs de serveur : Votre serveur Nginx peut probablement rencontrer un problème de mémoire de compartiment de hachage lors de l’ajout de blocs de serveur supplémentaires. Afin d’éviter cela, vous devez ajuster un seul fichier dans le nginx.fichier conf. Ensuite, ouvrez le fichier avec l’éditeur nano:
sudo nano /etc/nginx/nginx.conf
Ensuite, trouvez la directive: server_names_hash_bucket_size et supprimez le symbole # pour le décommenter, il ressemble donc à ceci:
http { server_names_hash_bucket_size 64;}
Ensuite, enregistrez et fermez le fichier.
Pour tester que tous vos fichiers Nginx n’ont pas d’erreurs, vous devez entrer la commande suivante:
sudo nginx -t
Si tout va bien, vous devriez voir quelque chose comme ceci:
Pour que les modifications de configuration prennent effet, vous devez d’abord démarrer le serveur Nginx en utilisant la commande ci-dessous :
sudo systemctl restart nginx
Maintenant, entrez dans le domaine et vous devriez voir la page HTML que nous avons créée.
Étape 6 – Fichiers et répertoires Nginx importants que vous devez connaître
- Répertoire de contenu principal
–/var/www/html: La page nginx par défaut est stockée dans ce répertoire. C’est le contenu réel que vous voyez lorsque vous accédez à l’adresse IP de votre serveur. Vous pouvez modifier ce comportement en modifiant les fichiers de configuration Nginx.
- Répertoires de configuration Nginx
–/etc/nginx : Répertoire principal contenant tous les fichiers de configuration Nginx.
–/etc/nginx/nginx.conf : Le fichier de configuration principal de Nginx qui peut être modifié pour apporter des modifications globales sur le serveur Nginx.
–/etc/nginx/sites-available/: C’est le répertoire dans lequel vous stockez les blocs de serveur par site. Tous les blocs de serveur se trouvent dans ce dossier. Un lien symbolique les liera au répertoire activé par les sites. Si nous listons le contenu de ce directeur, nous devrions voir le bloc de serveur que nous avons créé ainsi que le bloc de serveur Nginx par défaut.
–/etc/nginx/sites-enabled/: Les blocs de serveur enable par site existent dans ce répertoire. Ils sont liés aux fichiers de configuration réels dans le répertoire sites-available.
– /etc/nginx/snippets/: Le répertoire dans lequel vous stockez des extraits de configuration qui peuvent être inclus dans d’autres configurations – par ex. extraits de configuration répétitifs.
- Journaux du serveur
–/var/log/nginx/access.journal : Ce fichier enregistre chaque demande qui touche votre serveur, sauf si vous avez configuré Nginx pour qu’il soit stocké dans un autre fichier ou fasse autre chose.
– /var/log/nginx/ erreur.journal: Ce fichier enregistre toutes les erreurs Nginx. C’est là que vous viendrez dépanner lorsque votre serveur ne fonctionnera pas comme prévu.
Conclusion
Nous sommes arrivés à la fin du voyage. Vous avez installé Nginx sur Ubuntu 18.04, des pare-feu configurés, des blocs de serveur configurés et la garantie que les sites sont accessibles dans votre navigateur. Bravo! C’est maintenant à vous de déterminer quel contenu vous souhaitez servir à vos utilisateurs.
Bonne informatique !