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 explique comment configurer les blocs de serveur Nginx sur Debian 10.
Prérequis #
Assurez-vous que vous remplissez les conditions préalables suivantes :
- Nom de domaine pointant vers l'adresse IP de votre serveur public.
- Nginx installé sur votre système Debian.
- 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éer 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 n'importe quel répertoire sur le serveur.
Les exemples de cet article utilisent la structure de répertoires suivante :
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
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
annuaire. Dans chacun de ces répertoires, nous allons créer un public_html
répertoire qui stockera les fichiers du site Web du domaine.
Exécutez la commande suivante pour créer le répertoire racine du domaine example.com
:
sudo mkdir -p /var/www/example.com/public_html
Ensuite, 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
Ouvrez le fichier et collez les lignes suivantes :
/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 les problèmes d'autorisation, changez la propriété du répertoire racine du document du domaine en l'utilisateur Nginx (www-data
):
sudo chown -R www-data: /var/www/example.com
Créer un bloc de serveur #
Par défaut, sur les systèmes Debian, les fichiers de configuration des blocs du serveur Nginx sont stockés dans /etc/nginx/sites-available
annuaire. Pour activer une configuration, vous devez lier symboliquement le fichier au /etc/nginx/sites-enabled/
répertoire.
Ouvrez votre éditeur de texte et créez le fichier de bloc de serveur suivant :
sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sites-available/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;
}
}
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.
Activez le nouveau fichier de blocage du serveur en créant un lien symbolique du fichier vers le sites-enabled
répertoire :
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Testez la configuration Nginx pour une syntaxe correcte :
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
Pour vérifier que le bloc serveur fonctionne comme prévu, ouvrez http://example.com
dans votre navigateur, et vous verrez quelque chose comme ceci :