Comment installer Nginx sur Ubuntu 20.04 LTS

Guide complet étape par étape pour installer et configurer un serveur Web Nginx sur un système Ubuntu 20.04

Nginx est un serveur Web proxy inverse open source et populaire disponible sur plusieurs plates-formes. Le logiciel a été développé par Igor Sysoev comme solution au problème C10K et publié pour la première fois en 2004. Le problème C10K est le problème de la gestion simultanée de dix mille clients, ce qui n'était pas facile au début des années 2000.

Dans ce didacticiel, nous examinons comment installer et configurer Nginx sur Ubuntu 20.04 LTS.

Conditions préalables

Un système avec Ubuntu 20.04 installé et un sudo utilisateur. De plus, vous n'avez besoin d'aucun autre serveur Web tel qu'Apache s'exécutant sur le port 80 ou 443.

Installation de Nginx

Nginx est disponible dans le référentiel Ubuntu 20.04 et apte gestionnaire de paquets peut être utilisé pour l'installer. Donc, pour installer Nginx, ouvrez le terminal en utilisant ctrl+alt+t et courir:

sudo apt update && sudo apt installer nginx

L'installation sera bientôt terminée et le démon Nginx démarrera automatiquement en arrière-plan. Donc, pour vérifier l'état de Nginx, exécutez :

statut sudo systemctl nginx

Après avoir exécuté la commande ci-dessus, vous devriez obtenir le statut Nginx comme actif (en cours d'exécution) en vert comme ci-dessous.

Configuration du pare-feu Ubuntu (UFW)

Par défaut, les ports sortants HTTP (80) et HTTPS (443) sont fermés sur Ubuntu 20.04. De plus, le démon de pare-feu par défaut euh est désactivé car tous les ports sont fermés.

Ainsi, pour accéder au serveur Nginx à partir d'autres systèmes, vous devrez activer le euh et le configurer correctement pour autoriser le trafic sur le port 80 et 443. Avant d'activer euh, sachez que si vous configurez Nginx sur un serveur distant, mettez d'abord à jour le euh règles permettant ssh en exécutant:

sudo ufw autoriser ssh

La commande ci-dessus permet au ssh l'accès au serveur distant, sans autoriser ssh vous serez exclu du serveur distant.

Après avoir activé ssh accès, vous pouvez activer le euh démon de pare-feu en exécutant :

sudo ufw activer

Maintenant, vous devez modifier les règles de pare-feu pour autoriser les ports HTTP et HTTPS afin que Nginx puisse servir le trafic Web. Pour modifier les règles, exécutez :

sudo ufw autorise 'Nginx Full'

Nginx plein autorise les ports HTTP et HTTPS pour le trafic entrant et sortant de toutes les adresses IP.

Après cela, vérifiez si les règles sont correctement ajoutées à euh pare-feu en exécutant la commande :

statut sudo ufw

La commande ci-dessus affichera les règles que nous avons ajoutées à euh démon de pare-feu.

Connexion au serveur Nginx

Maintenant que nous avons installé Nginx et configuré euh pour autoriser le trafic Web HTTP et HTTPS entrant, vous devez pouvoir accéder au serveur Nginx en utilisant l'adresse IP du serveur.

Si vous ne connaissez pas l'adresse IP du serveur, utilisez la commande ci-dessous pour la récupérer facilement.

adresse ip afficher eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Une fois que vous avez l'adresse IP, collez-la dans votre navigateur et appuyez sur Entrée.

//votre-serveur-ip

Si tout a été configuré correctement, vous devriez pouvoir voir la page Web « Bienvenue sur nginx !".

Fichiers et répertoires Nginx

Maintenant que Nginx est installé et exécuté sur votre serveur. Jetons un coup d'œil à certains des fichiers et répertoires Nginx importants que vous devrez utiliser pour configurer votre site Web/application Web.

Serveur Web Contenu

Vous pouvez configurer n'importe quel emplacement que vous souhaitez être votre répertoire racine pour votre bloc de serveur. Le code HTML par défaut de Nginx est directement /var/www/html, c'est là que se trouve la page « bienvenue » à laquelle nous avons accédé plus tôt.

D'autres emplacements qui sont généralement utilisés comme répertoire racine pour les domaines incluent :

  • /domicile//
  • /var/www/html/
  • /opter/

Fichiers de configuration Nginx

Tous les fichiers de configuration Nginx se trouvent dans /etc/nginx annuaire. Examinons quelques-uns des fichiers importants dont nous avons besoin pour configurer un domaine de base.

  • /etc/nginx/nginx.conf: ce fichier contient toute la configuration nécessaire pour exécuter Nginx.
  • /etc/nginx/sites-disponibles/: Ce répertoire contient toute la configuration de bloc serveur des domaines, mais n'est actuellement pas activé/déployé et donc inaccessible par les clients.
  • /etc/nginx/sites-enabled/: ce répertoire contient les domaines actuellement actifs/activés accessibles par les clients. Pour activer un domaine, nous devons lier le fichier de configuration du domaine à partir de sites-disponibles à la activé pour les sites annuaire.
  • /etc/nginx/snippets/ : Dans ce répertoire, on peut stocker des segments de configuration potentiellement réutilisables. Il permet de gagner beaucoup de temps dans l'environnement de production du fait qu'il peut rendre des segments/blocs de configuration réutilisables.

Journaux du serveur

Nginx enregistre les événements/activités et les stocke dans des fichiers journaux dans le /var/log/nginx annuaire. Les activités de journalisation de Nginx dans ces fichiers :

  • /var/log/nginx/access.log: ce fichier enregistre les clients qui ont accédé au serveur Nginx. Les détails incluent l'adresse IP du client, l'heure et la date, le navigateur utilisé pour accéder au serveur et au système d'exploitation.
  • /var/log/nginx/error.log: ce fichier enregistre les erreurs rencontrées par le serveur Nginx lors de l'exécution.

Ainsi, dans cette section, nous avons brièvement examiné certains des fichiers et répertoires Nginx importants qui suffisent pour commencer.

Configuration des blocs de serveur

Maintenant que nous avons des connaissances de base sur les fichiers et le serveur Nginx, nous sommes prêts à configurer notre propre bloc de serveur. Les blocs de serveur sont similaires aux hôtes virtuels Apache.

Nous verrons comment créer un bloc serveur et démontrerons que nous utiliserons exemple.com comme domaine dans le processus de création.

Remplacer exemple.com avec votre nom de domaine.

Avant de commencer à configurer Server Blocks, nous devons créer un répertoire qui servira de répertoire racine pour le contenu du site Web. Créons /var/www/exemple.com/html répertoire pour le domaine utilisant mkdir commander.

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

le -p L'option créera tous les répertoires parents nécessaires. c'est-à-dire qu'il créera exemple.com un répertoire parent pour html s'il n'existe pas.

Changer la propriété du répertoire avec le $USER variable d'environnement :

sudo chown -R $USER:$USER /var/www/example.com/html

Ensuite, créez un simple index.html fichier auquel vous accéderez lorsque vous visiterez le domaine en cours de configuration. Ceci est uniquement à des fins explicatives.

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

Collez le contenu suivant dans le fichier que nous venons de créer sur le serveur.

  Bienvenue sur exemple.com ! 

Yo ! L'exemple.com est accessible !

presse ctrl+o pour écrire et enregistrer le index.html fichier, puis appuyez sur ctrl+x pour quitter nano éditeur.

Maintenant, nous pouvons enfin passer à la création d'un bloc de serveur, afin que Nginx puisse servir le index.html quand un utilisateur va à exemple.com. Donc, pour créer un bloc de serveur, nous devons créer un fichier de configuration nommé exemple.com dans sites-disponibles annuaire. Pour ce faire, nous utilisons nano et exécutons :

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

Et ensuite, tapez ou copiez/collez la configuration suivante. Puis appuyez ctrl+o et entrez pour écrire et enregistrer. De même, appuyez sur ctrl+x pour fermer l'éditeur nano.

serveur { écouter 80 ; écoutez [::]:80; nom_serveur exemple.com www.exemple.com ; racine /var/www/exemple-domaine.com/html ; index index.html; emplacement / { try_files $uri $uri/ =404; } }

La configuration ci-dessus est similaire à la configuration de bloc de serveur par défaut, nous avons changé racine déclaration pour pointer vers notre nouveau répertoire racine et a changé le nom du serveur à notre nom de domaine. Tandis que le emplacement{} L'instruction sert d'instruction de capture d'erreur si les fichiers ne sont pas trouvés et affiche l'erreur 404 au client.

Ensuite, nous pouvons activer notre bloc de serveur pour que Nginx serve exemple.com les pages Web. Pour activer notre bloc de serveur, nous devons créer un lien symbolique de exemple.com fichier de sites-disponibles à activé pour les sites annuaire. Pour ce faire, exécutez :

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

Un lien sera créé dans activé par le site répertoire et maintenant exemple.com devrait être activé. Nous avons maintenant deux blocs de serveur activés sur notre serveur Nginx qui répondront à la demande en fonction de Ecoutez et nom_du_serveur directives enregistrées dans exemple.com configuration du bloc serveur.

Pour vérifier si tous les fichiers de configuration sont corrects et qu'aucune erreur de syntaxe n'est présente, exécutez :

sudo nginx -t

Maintenant, redémarrez enfin Nginx pour appliquer les modifications en exécutant la commande suivante :

sudo systemctl redémarrer nginx

Nginx va commencer à servir votre bloc de serveur maintenant, vous pouvez aller à //votre-nom-de-domaine et voir votre page Web en direct.

Noter: Pour que la section ci-dessus fonctionne, vous devrez configurer votre propre domaine et remplacer exemple.com avec votre propre nom de domaine. En outre, vous devrez configurer DNS pour que votre domaine pointe vers l'adresse IP de votre serveur Nginx.

Pour conclure, nous avons vu comment installer Nginx, configurer euh pour autoriser l'accès à distance au serveur Nginx, connecté à Nginx à distance, s'est familiarisé avec certains fichiers et répertoires de base Nginx et a appris à configurer un bloc de serveur.

Pour connaître et en savoir plus sur Nginx, vous pouvez consulter le wiki Nginx.