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 desites-disponibles
à laactivé 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.