Dans Nginx, blocages de serveur sont utilisés pour définir des informations de domaine spécifiques. Il aide à héberger plusieurs domaines ou sites Web. Chaque bloc contient des informations de domaine spécifiques telles que la racine du document, SSL, le port, etc. Les blocs de serveur Nginx sont similaires aux hôtes virtuels Apache.
Dans ce didacticiel, nous apprenons à configurer les blocs de serveur Nginx sur Ubuntu 18.04/20.04 .
Prérequis
Nécessite une instance Ubuntu 18.04/20.04. L'instance doit avoir Nginx installé. Nécessite un utilisateur avec un accès sudo.
Étape 1. Créer la structure du répertoire
La racine du document est le répertoire dans lequel les fichiers du site Web d'un nom de domaine sont stockés et servis en réponse aux demandes. Nous pouvons définir la racine du document à n'importe quel emplacement, mais dans cet article, nous utiliserons la structure de répertoires suivante :
/var/www/
├── domain1.com
│ └── images
│ └── index.html
│ └── style.css
├── domain2.net
│ └── images
│ └── index.html
│ └── style.css
Fondamentalement, nous allons créer un répertoire séparé pour chaque domaine que nous voulons héberger sur notre serveur à l'intérieur du /var/www
répertoire.
Créons le répertoire racine de nos domaines :
$ sudo mkdir -p /var/www/domain1.com
À des fins de test, nous allons créer un répertoire index.html, des fichiers style.css et des images dans le répertoire racine des documents du domaine.
$ cd /var/www/domain1.com/
/var/www/domain1.com$ sudo mkdir images index.html style.css
Ouvrez notre éditeur et créez le fichier de démonstration :
/var/www/domain1.com/index.html<!DOCTYPE html> <html lang="en" dir="ltr">
<head> <meta charset="utf-8">
<title>Welcome to domain1.com</title> <link rel="stylesheet" href="style.css"/>
</head>
<body> <h1 style="color:green;text-align:center;">Success! domain1.com home page!</h1>
</body>
</html>
Ici, nous exécutons les commandes en tant que sudo
utilisateur et les fichiers et répertoires nouvellement créés appartiennent à la root
utilisateur.
Pour éviter tout problème d'autorisation, nous pouvons changer la propriété du répertoire racine du document de domaine en l'utilisateur Nginx (www-data)
:
$ sudo chown -R www-data: /var/www/domain1.com
nous ferons les mêmes procédures pour le domain2.net
Étape 2. Créer des fichiers de bloc de serveur Nginx pour chaque domaine
Maintenant que nous avons le contenu que nous souhaitons diffuser, nous devons réellement créer les blocs de serveur qui indiqueront à Nginx comment procéder.
Par défaut, Nginx contient un bloc serveur appelé dfault
que nous pouvons utiliser comme modèle pour nos propres configurations. Nous commencerons par concevoir le bloc serveur de notre premier domaine, que nous copierons ensuite pour notre deuxième domaine et apporterons les modifications nécessaires.
1) Créer le premier fichier de bloc de serveur Nginx
Comme mentionné ci-dessus, nous allons créer notre premier fichier de configuration de bloc de serveur en copiant le fichier par défaut :
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain1.com
Maintenant, ouvrez le nouveau fichier que vous avez créé dans votre éditeur de texte avec les privilèges sudo :
$ sudo nano /etc/nginx/sites-available/domain1.com
Après avoir modifié le fichier, il ressemblera à ceci :
/etc/nginx/sites-available/domain1.comserver { listen 80; listen [::]:80; root /var/www/domain1.com; index index.html index.htm index.nginx-debian.html; server_name domain1.com www.domain1.com;
location /
{ try_files $uri $uri/ =404; } }
C'est tout ce dont nous avons besoin pour une configuration de base. Enregistrez et fermez le fichier pour quitter Ctrl
+ x
.
2) Créer le deuxième fichier de bloc de serveur Nginx
Maintenant que nous avons notre première configuration de bloc de serveur Nginx, nous pouvons l'utiliser comme base pour notre deuxième fichier. Copiez-le pour créer un nouveau fichier :
$ sudo cp /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain2.net
Ouvrez le nouveau fichier avec sudo
privilèges dans votre éditeur :
$ sudo nano /etc/nginx/sites-available/domain2.net
Ajustez la directive racine pour qu'elle pointe vers le document root
de notre deuxième domaine et ajustez le server_name
pour correspondre au nom de domaine de votre deuxième site (assurez-vous d'inclure tous les alias).
Lorsque vous aurez terminé, notre fichier ressemblera probablement à ceci :
/etc/nginx/sites-available/domain2.netserver { listen 80; listen [::]:80; root /var/www/domain2.net; index index.html index.htm index.nginx-debian.html; server_name domain2.net www.domain2.net;
location /
{ try_files $uri $uri/ =404; } }
Enregistrez et fermez le fichier pour quitter Ctrl
+ x
.
Étape 3. Activez nos blocs de serveur Nginx et redémarrez Nginx
Maintenant que nous avons nos fichiers de blocage de serveur, nous devons les activer. Nous pouvons le faire en créant des liens symboliques à partir de ces fichiers vers le sites-enabled
répertoire, que Nginx lit au démarrage.
Nous pouvons créer ces liens en tapant :
$ sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/domain2.net /etc/nginx/sites-enabled/
Ces fichiers sont maintenant dans le répertoire activé, nous avons maintenant trois blocs de serveur activés :
1. domaine1.com :répondra aux demandes de domaine1.com et www.domain1.com
2. domain2.net :répondra aux demandes de domain2.net et www.domain2.net
3. par défaut :répondra à toutes les requêtes sur le port 80 qui ne correspondent pas aux deux autres blocs.
Afin d'éviter un éventuel problème de mémoire de compartiment de hachage pouvant survenir lors de l'ajout de noms de serveur supplémentaires, nous allons continuer et ajuster une seule valeur dans notre fichier /etc/nginx/nginx.conf. Ouvrez le fichier maintenant :
$ sudo nano /etc/nginx/nginx.conf
Dans le fichier, recherchez le server_names_hash_bucket_size
directif. Supprimez le #
symbole pour décommenter la ligne :
http { . . . server_names_hash_bucket_size 64; . . . }
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, testez pour vous assurer qu'il n'y a pas d'erreurs de syntaxe dans l'un de nos fichiers Nginx :
$ sudo nginx -t
Si aucun problème n'a été trouvé, redémarrez Nginx pour activer nos modifications :
$ sudo systemctl restart nginx
Nginx devrait maintenant servir nos deux noms de domaine.
Étape 4. Vérifiez en accédant au site Web
Maintenant que nous sommes tous configurés, nous devons tester que nos blocs de serveur fonctionnent correctement. Nous pouvons le faire en visitant les domaines dans notre navigateur Web :
http://domain1.com
Vous devriez voir une page qui ressemble à ceci :
Si vous visitez votre deuxième nom de domaine, vous devriez voir un site légèrement différent :
http://domain2.net
Conclusion
Dans ce tutoriel, nous avons appris à configurer le bloc serveur Nginx sur Ubuntu 18.04/20.04. À l'aide des blocs de serveur Nginx, nous avons configuré deux domaines pour répondre aux requêtes Web.