Un bloc de serveur est une directive Nginx qui définit les paramètres d'un domaine spécifique, vous permettant d'exécuter plusieurs sites Web sur un seul serveur. Pour chaque site Web, vous pouvez définir la racine du document du site (le répertoire qui contient les fichiers du site Web), créer une politique de sécurité distincte, utiliser différents certificats SSL, et bien plus encore.
Cet article décrit comment configurer les blocs de serveur Nginx sur CentOS 8.
Prérequis #
Assurez-vous que vous avez satisfait aux exigences suivantes avant de poursuivre ce didacticiel :
- Nom de domaine pointant vers l'adresse IP de votre serveur public.
- Nginx installé sur votre système CentOS.
- Vous êtes connecté en tant que root ou utilisateur avec des privilèges sudo.
Dans certaines documentations, le terme Server Blocks
est appelé Virtual host
.Un hôte virtuel est un terme Apache.
Création de la structure de 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. La racine du document peut être définie sur n'importe quel emplacement de votre choix.
Nous utiliserons la structure de répertoires suivante :
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Pour chaque domaine qui sera hébergé sur le serveur, nous créerons un répertoire séparé dans /var/www
. Dans le répertoire du domaine, nous allons créer un public_html
répertoire qui sera le répertoire racine des documents du domaine et stockera les fichiers du site Web du domaine.
Commençons par créer le répertoire racine du domaine example.com
:
sudo mkdir -p /var/www/example.com/public_html
À des fins de test, créez un index.html
fichier dans le répertoire racine des documents du domaine :
sudo nano /var/www/example.com/public_html/index.html
Copiez et collez le code suivant dans le fichier :
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Pour éviter tout problème d'autorisation, changez la propriété du répertoire racine du document du domaine en utilisateur nginx
:
sudo chown -R nginx: /var/www/example.com
Création d'un bloc de serveur #
Par défaut sur CentOS, les fichiers de configuration du bloc du serveur Nginx doivent se terminer par .conf
et sont stockés dans le /etc/nginx/conf.d
répertoire.
Ouvrez votre éditeur de texte et créez le fichier de configuration du domaine :
sudo nano /etc/nginx/conf.d/example.com.conf
Le fichier de configuration peut être nommé comme vous le souhaitez, mais généralement, il est préférable d'utiliser le nom de domaine.
Copiez et collez le code suivant dans le fichier :
/etc/nginx/conf.d/example.com.confserver {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Enregistrez le fichier et vérifiez la configuration Nginx pour les erreurs de syntaxe :
sudo nginx -t
S'il n'y a pas d'erreurs, la sortie ressemblera à ceci :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrez le service Nginx pour que les modifications prennent effet :
sudo systemctl restart nginx
Enfin, pour vérifier si le bloc serveur fonctionne comme prévu, ouvrez http://example.com
dans le navigateur de votre choix, et vous verrez quelque chose comme ceci :