Cet article vous montre comment créer des hôtes virtuels NGINX® qui servent plusieurs domaines Web.
Créer la mise en page pour chaque domaine
Cet exemple crée deux domaines, domain1.com
et domain2.com
.
Étant donné que les autorisations par défaut ne vous autorisent que vous, la demo
utilisateur, pour parcourir votre dossier personnel, vous devez également accorder à NGINX l'accès à ce dossier en exécutant la commande suivante :
chmod 755 /home/demo
Vous pouvez maintenant créer la mise en page de base pour chaque domaine. Dans votre home
répertoire, créez un public_html
dossier en exécutant la commande suivante :
mkdir /home/demo/public_html
Pour chaque domaine que vous souhaitez héberger, créez un dossier avec un ensemble standard de sous-dossiers, comme illustré dans les exemples suivants :
mkdir -p /home/demo/public_html/domain1.com/{public,private,,backup}
mkdir -p /home/demo/public_html/domain2.com/{public,private,log,backup}
Ces commandes créent les dossiers public
, private
, log
, et backup
pour chacun de vos domaines.log
Ajouter du contenu public pour le site Web sur domain1.com
Cet exemple crée un fichier HTML très simple dans le dossier public qui vous permet de vérifier rapidement que l'hôte virtuel fonctionne.
Exécutez la commande suivante pour ajouter du contenu pour domain1.com
:
nano /home/demo/public_html/domain1.com/public/index.html
Entrez un code similaire à l'exemple suivant dans le fichier :
<html>
<head>
<title>domain1.com</title>
</head>
<body>
<h1>domain1.com</h1>
</body>
</html>
Répétez le processus afin d'avoir un fichier d'index HTML similaire pour domain2.com
.
Remarque :Assurez-vous de modifier le contenu dans index.html fichier pour afficher domain2.com
et non domain1.com
.
Disposition des hôtes virtuels
Cet article utilise une disposition de style CentOS® (qui utilise un conf.d
répertoire pour stocker vos fichiers de configuration) lors de la création des hôtes virtuels. Vous pouvez également avoir cette mise en page si vous avez installé NGINX à l'aide du gestionnaire de packages ou à partir des sources.
Ajoutez vos hôtes virtuels au fichier virtuel
Modifiez le fichier virtuel pour ajouter domain1.com
en exécutant la commande suivante :
sudo nano /etc/nginx/conf.d/virtual.conf
Remarque :Assurez-vous d'ajuster le chemin en fonction de votre installation.
Si vous installez à partir de la source, vous devez saisir le chemin suivant :
sudo nano /usr/local/nginx/conf/conf.d/virtual.conf
Ajoutez le code suivant au fichier :
server {
listen 80;
server_name www.domain1.com;
rewrite ^/(.*) https://domain1.com/$1 permanent;
}
server {
listen 80;
server_name domain1.com;
access_log /home/demo/public_html/domain1.com/log/access.log;
error_log /home/demo/public_html/domain1.com/log/error.log;
location / {
root /home/demo/public_html/domain1.com/public/;
index index.html;
}
}
Le premier module de serveur dans le fichier est une simple règle de réécriture qui redirige les visiteurs vers domain1.com
de www.domain1.com
.
Le deuxième module de serveur contient des informations très basiques, y compris le server_name
, qui est le nom de domaine que vous souhaitez servir.
Ensuite, le code définit les emplacements des journaux afin que vous puissiez les trouver facilement. Enfin, il définit la racine du serveur et le fichier d'index.
Recharger NGINX
Pour activer votre site, rechargez NGINX en exécutant la commande suivante :
sudo /etc/init.d/nginx reload
Afficher votre site Web
Accédez à votre domaine en collant l'URL suivante dans la barre de navigation de votre navigateur Web :
https://www.domain1.com
Vous devriez voir une page Web de test simple qui affiche les informations dans le index.html fichier.
Vérifier les journaux
Dans une étape précédente, vous avez ajouté du code au virtual.conf fichier qui a configuré les emplacements des journaux. Exécutez les commandes suivantes pour vérifier qu'il existe des journaux à cet emplacement :
ls /home/demo/public_html/domain1.com/log/
...
access.log error.log
Répéter pour les domaines supplémentaires
Répétez le même processus pour votre prochain hôte virtuel, domain2.com
.