Qu'est-ce que l'hôte virtuel Apache ?
Hôte virtuel vous permet d'exécuter plusieurs sites Web à partir d'un seul serveur physique ou d'un serveur privé virtuel. Il existe deux types d'hôtes virtuels sur Apache :
- Hébergement virtuel basé sur IP – chaque site Web individuel sur le serveur Apache utilise une adresse IP différente et unique.
- Hôtes virtuels basés sur le nom – vous permet d'ajouter plusieurs domaines à l'aide d'une seule adresse IP.
Ce didacticiel vous montre comment configurer les hôtes virtuels Apache sur un système Ubuntu 18.04.
Prérequis
- Ligne de commande/fenêtre de terminal
- Utilisateur avec root ou sudo privilèges
- Un domaine pointant vers une adresse IP de serveur public
- Serveur Web Apache sur Ubuntu installé, configuré et actif
- Pare-feu activé
Configurer plusieurs domaines sur une seule IP
Apache Virtual Host vous permet de maximiser vos ressources lors de la configuration d'un site Web. Avec ce logiciel puissant, vous pouvez utiliser un seul serveur et une seule adresse IP pour héberger plusieurs domaines différents.
Avant de pouvoir configurer les hôtes virtuels Apache, vous devez installer le serveur Web Apache. Pour cela, lancez la commande :
sudo apt-get install apache2
Si vous rencontrez des problèmes lors de la configuration du serveur Web, consultez notre tutoriel détaillé sur l'installation d'Apache sur Ubuntu.
Comment configurer un hôte virtuel basé sur le nom
Basé sur le nom l'hébergement virtuel permet au client de signaler le nom d'hôte au serveur, en tant qu'élément de l'en-tête HTTP. Cette fonctionnalité signifie qu'une machine peut héberger plusieurs sites Web partageant la même adresse IP.
Étape 1 :Créer une structure de répertoire
Chaque hôte virtuel doit disposer d'un répertoire pour stocker les données de l'hôte virtuel. Créez des répertoires et une structure de répertoires à l'emplacement suivant /var/www . Dans notre exemple, nous avons créé phxnap1.com et phxnap2.com répertoires, un pour chaque nom de domaine.
1. Saisissez la commande suivante et remplacez l'exemple de domaine par vos noms de domaine :
sudo mkdir -p /var/www/phxnap1.com/public_html
sudo mkdir -p /var/www/phxnap2.com/public_html
Dans les répertoires, nous avons également créé public_html . Ces répertoires vont stocker les fichiers de sites Web pour les domaines.
2. Ensuite, créez un exemple index.html page pour chaque domaine, en utilisant nano ou votre éditeur de texte préféré. Commencez par le premier domaine :
nano /var/www/phxnap1.com/public_html/index.html
3. Ajoutez l'exemple HTML suivant :
<html>
<head>
<title>Welcome to phoenixNAP 1!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your first domain!</h1>
</body>
</html>
4. Enregistrez et quittez le fichier.
5. Ensuite, créez un exemple de page pour le deuxième domaine :
nano /var/www/phxnap2.com/public_html/index.html
6. Ajoutez les lignes suivantes au fichier :
<html>
<head>
<title>Welcome to phoenixNAP 2!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your second domain!</h1>
</body>
</html>
7. Enregistrez et quittez le deuxième fichier HTML.
8. Pour éviter tout problème d'autorisation, modifiez la propriété du répertoire racine de votre document en www-data . La commande chown est utile dans ce cas :
sudo chown –R www-data:www-data /var/www/phxnap1.com
sudo chown –R www-data:www-data /var/www/phxnap2.com
Vous avez maintenant réussi à modifier la propriété du répertoire à l'utilisateur Apache .
Étape 2 :Créer un fichier de configuration d'hôte virtuel
Les fichiers de configuration d'Apache Virtual Host sont stockés dans /etc/apache2/sites-available répertoire.
1. Pour créer un fichier de configuration de base pour votre premier domaine, saisissez les informations du domaine dans la commande :
sudo nano /etc/apache2/sites-available/phxnap1.com.conf
2. Ajoutez le bloc de configuration suivant pour créer un fichier de configuration de base. Cet exemple utilise le premier domaine de test, phxnap1.com . Assurez-vous d'entrer le bon domaine pour votre site Web :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap1.com
ServerAlias www.phxnap1.com
DocumentRoot /var/www/phxnap1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap1.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap1.com-access.log combined
</VirtualHost>
- Nom du serveur – représente le domaine
- Alias du serveur – représente tous les autres domaines tels que les sous-domaines
- DocumentRoot – le répertoire utilisé par Apache pour servir les fichiers du domaine
- ErrorLog, CustomLog – désigne l'emplacement des fichiers journaux
Il n'y a pas de format établi. Cependant, nommer vos fichiers de configuration en fonction du nom de domaine est une "meilleure pratique".
4. Une fois que vous avez modifié le fichier de configuration pour le premier domaine, répétez le processus pour le reste. Dans notre cas, nous exécuterons :
sudo nano /etc/apache2/sites-available/phxnap2.com.conf
5. Ensuite, ajoutez le bloc de configuration comme dans l'exemple ci-dessus, en veillant à modifier les valeurs pour phxnap2.com :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap2.com
ServerAlias www.phxnap2.com
DocumentRoot /var/www/phxnap2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap2.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap2.com-access.log combined
</VirtualHost>
Étape 3 :Activer les fichiers de configuration de l'hôte virtuel
Pour activer le fichier d'hôte virtuel, créez un lien symbolique entre le fichier d'hôte virtuel et le répertoire sites-enabled. Apache2 lit ce fichier lors du démarrage.
1. Utilisez l'assistant a2ensite pour activer le fichier d'hôte virtuel avec la commande :
sudo a2ensite phxnap1.com
La sortie apparaîtra comme :
2. Répétez le processus pour le deuxième domaine en tapant :
sudo a2ensite phxnap2.com
3. Ensuite, vérifiez que la syntaxe du fichier de configuration est correcte à l'aide de la commande :
sudo apachectl configtest
Le message dans le terminal confirmera que la syntaxe est correcte :"Syntaxe OK"
4. Redémarrez Apache2 pour que les modifications soient appliquées :
sudo systemctl restart apache2
5. La seule chose qui reste à faire est d'aller dans un navigateur Web et d'accéder à vos sites Web. Basé sur index.html fichier que nous avons créé précédemment, le message approprié doit apparaître pour chaque domaine.
phxnap1.com
phxnap2.com
Étape 4 :Configurer le pare-feu (facultatif)
Modifiez les paramètres de votre pare-feu pour améliorer la sécurité en créant une règle pour activer SSH sur Ubuntu :
sudo ufw allow OpenSSH
Ajoutez les règles pour autoriser l'accès à Apache.
sudo ufw allow in “Apache Full”
Ensuite, activez le pare-feu.
sudo ufw enable
Si vous voyez un message indiquant "La commande peut perturber les connexions SSH existantes." Appuyez sur y
. Si le pare-feu fonctionne correctement, vous devriez voir "Le pare-feu est actif et activé au démarrage du système."