Nginx Server Blocks vous permet d'exécuter plusieurs sites Web sur une seule machine. Ceci est utile car pour chaque site, vous pouvez spécifier 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.
Dans ce didacticiel, nous expliquerons comment configurer les blocs de serveur Nginx sur CentOS 7.
Prérequis #
Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :
- Nom de domaine pointant vers l'adresse IP de votre serveur public. Nous utiliserons
example.com
. - Nginx installé sur votre système CentOS.
- Connecté en tant qu'utilisateur root ou utilisateur avec des privilèges sudo.
Server Blocks
étant appelé un 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. Nous pouvons définir la racine du document à l'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
Fondamentalement, nous créons un répertoire séparé pour chaque domaine que nous voulons héberger sur notre serveur à l'intérieur du /var/www
annuaire. Dans ce répertoire, 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 de notre domaine example.com
:
sudo mkdir -p /var/www/example.com/public_html
À des fins de test, nous allons créer un index.html
fichier dans le répertoire racine des documents du domaine.
Ouvrez votre éditeur de texte et créez la démo index.html
fichier :
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>
Dans cet exemple, nous exécutons les commandes en tant qu'utilisateur sudo et les fichiers et répertoires nouvellement créés appartiennent à l'utilisateur root.
Pour éviter tout problème d'autorisation, changez la propriété du répertoire racine du document du domaine en l'utilisateur Nginx (nginx
):
sudo chown -R nginx: /var/www/example.com
Créer un bloc de serveur #
Les fichiers de configuration du bloc de serveur Nginx doivent se terminer par .conf
et sont stockés dans /etc/nginx/conf.d
répertoire.
Ouvrez l'éditeur de votre choix et créez un fichier de configuration de bloc de serveur pour example.com
.
sudo nano /etc/nginx/conf.d/example.com.conf
Vous pouvez nommer le fichier de configuration comme vous le souhaitez. Il est généralement 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 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 :