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 Ubuntu 20.04.
Prérequis #
Assurez-vous que vous remplissez les conditions suivantes avant de continuer :
- Nom de domaine pointant vers l'adresse IP de votre serveur public.
- Nginx installé sur votre système Ubuntu.
- Vous êtes connecté en tant que root ou utilisateur avec des privilèges sudo.
Dans certains articles, le terme « blocs de serveur » est appelé « hôte virtuel ». 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. Vous pouvez définir la racine du document à l'emplacement de votre choix. Dans cet exemple, nous utiliserons la structure de répertoires suivante :
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Chaque domaine hébergé sur le serveur aura sa racine de document définie sur /var/www/<domain_name>/public_html
.
Commencez par créer le répertoire racine du domaine :
sudo mkdir -p /var/www/domain1.com/public_html
Nous allons également créer un index.html
fichier dans le répertoire racine des documents du domaine qui s'affichera lorsque vous visiterez le domaine dans votre navigateur :
<!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>
Étant donné que les commandes ci-dessus sont exécutées en tant qu'utilisateur sudo, les fichiers et répertoires nouvellement créés appartiennent à root. Pour éviter tout problème d'autorisation, changez la propriété du répertoire racine du document de domaine et de tous les fichiers du répertoire pour l'utilisateur Nginx (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Création d'un bloc de serveur #
Sur les systèmes Ubuntu, les fichiers de configuration du bloc de serveur Nginx se trouvent dans /etc/nginx/sites-available
annuaire. Ils peuvent être activés en créant des liens symboliques vers le /etc/nginx/sites-enabled
répertoire, que Nginx a lu au démarrage.
Ouvrez votre éditeur de texte et créez le fichier de bloc de serveur suivant :
/etc/nginx/sites-available/example.comserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
server_name
:Les domaines qui doivent correspondre à cette configuration de bloc de serveur.root
:Le répertoire à partir duquel Nginx servira les fichiers de domaine.access_log
,error_log
:spécifie l'emplacement des fichiers journaux.
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.
Pour activer le nouveau fichier de blocage du serveur, créez un lien symbolique du fichier vers le sites-enabled
répertoire, que Nginx a lu au démarrage :
sudo ln -s /etc/nginx/sites-available/example.com /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
Enfin, pour vérifier que le bloc serveur fonctionne comme prévu, ouvrez http://example.com
dans le navigateur de votre choix, et vous verrez quelque chose comme ceci :