GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer la configuration de l'hôte virtuel Apache (avec exemples)

En utilisant Apache Virtual Host, vous pouvez exécuter plusieurs sites Web sur le même serveur.

Par exemple, je peux exécuter à la fois thegeekstuff.com et top5freeware.com sur un seul serveur physique sur lequel un serveur Web Apache est exécuté.

Fig :Apache Virtual Host (Plusieurs sites Web, un Apache)


Il existe deux types de configurations d'hôtes virtuels Apache :1) Hôte virtuel basé sur IP et 2) Hôte virtuel basé sur le nom. L'hôte virtuel basé sur le nom est recommandé pour la plupart des scénarios.

Hôte virtuel basé sur IP

Dans cette configuration, lorsque vous pointez deux sites Web (avec une adresse IP différente) vers le serveur qui exécute Apache, ce serveur physique doit avoir deux adresses IP différentes configurées.

Cela signifie que le serveur doit avoir deux cartes Ethernet, chacune d'elles configurée sur l'adresse IP du site Web correspondant que l'hôte virtuel Apache desservira. Donc, ce n'est pas pratique pour la plupart des aspects, et vous ne devriez pas l'utiliser.

Dans l'exemple suivant, le serveur contient deux cartes réseau, une est configurée avec l'adresse IP 192.168.101.1 pour thegeekstuff.com, une autre est configurée avec 192.168.102.1 pour top5freeware.com. Ces deux adresses IP sont desservies par un seul serveur Web Apache exécuté sur ce serveur à l'aide d'un hôte virtuel basé sur IP.

Fig :Hôte virtuel basé sur IP Apache

Hôte virtuel basé sur le nom

Dans cette configuration, lorsque le serveur Web Apache reçoit une requête, il recherche le nom d'hôte dans l'en-tête HTTP et, en fonction du nom d'hôte, il héberge différents sites Web. C'est très simple, car vous n'avez besoin que d'une seule adresse IP sur ce serveur physique; mais, vous mettez à jour le DNS avec plusieurs noms de sites Web pointant vers la même adresse IP. À toutes fins pratiques, vous n'utiliserez que la configuration d'hôte virtuel basée sur le nom.

Dans l'exemple suivant, le serveur contient une seule carte NIC, qui est configurée avec l'adresse IP 192.168.101.1. L'entrée DNS pour les sites Web thegeekstuff.com et top5freeware.com pointe vers l'adresse IP 192.168.101.1. Lorsqu'Apache reçoit une requête, il recherche l'entrée du nom d'hôte dans l'en-tête HTTP et dessert le site Web correspondant.

Fig :Hôte virtuel basé sur le nom d'Apache

1. Décommentez httpd-vhosts.conf dans httpd.conf

Si vous avez installé Apache 2 à partir des sources, par défaut, la ligne suivante sera commentée dans le fichier httpd.conf. Décommentez cette ligne.

# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf

2. Configurer les hôtes virtuels

Modifiez httpd-vhosts.conf comme indiqué ci-dessous pour configurer le paramètre d'hôte virtuel basé sur le nom pour deux hôtes.

  • NameVirtualHost *:80 - Indique que tous les hôtes virtuels basés sur le nom écouteront sur le port par défaut 80
  • – Placez tous les paramètres de configuration apache pour chaque hôte virtuel entre ces balises VirtualHost. Toutes les directives apache peuvent être utilisées dans le conteneur virtualhost.
  • Dans l'exemple suivant, nous configurons un hôte virtuel pour thegeekstuff.com et top5freeware.com écoutant sur le même port 80. Ainsi, il y aura deux , un pour chaque site Web .
  • Lorsque vous accédez à thegeekstuff.com, les fichiers sous /usr/local/apache2/docs/thegeekstuff seront servis par Apache ; et les access_log et error_log pour ce site iront sous /usr/local/apache2/logs/thegeekstuff
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/thegeekstuff"
    ServerName thegeekstuff.com
    ServerAlias www.thegeekstuff.com
    ErrorLog "logs/thegeekstuff/error_log"
    CustomLog "logs/thegeekstuff/access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/top5freeware"
    ServerName top5freeware.com
    ServerAlias www.top5freeware.com
    ErrorLog "logs/top5freeware/error_log"
    CustomLog "logs/top5freeware/access_log" common
</VirtualHost>

3. Vérifier la syntaxe de configuration de VirtualHost

Vérifiez la syntaxe de la configuration virtuelle à l'aide de "httpd -S" comme indiqué ci-dessous. Lorsque tout est correctement configuré, il affiche simplement "Syntaxe OK".

# /usr/local/apache2/bin/httpd -S
VirtualHost configuration:
Syntax OK

Lorsque quelque chose n'est pas configuré correctement, il affichera un message d'avertissement, y compris le message "Le répertoire ne se ferme pas", comme indiqué ci-dessous.

# /usr/local/apache2/bin/httpd -S
Warning: DocumentRoot [/usr/local/apache2/docs/top5freeware] does not exist
Warning: ErrorLog [/usr/local/apache2/logs/thegeekstuff] does not exist
Syntax OK

4. Redémarrez Apache et testez

# /usr/local/apache2/bin/apachectl restart

Maintenant, lorsque vous allez sur thegeekstuff.com (ou www.thegeekstuff.com), apache servira les fichiers du répertoire /usr/local/apache2/docs/thegeekstuff.

Lorsque vous accédez à top5freeware.com (ou www.top5freeware.com), le même apache exécuté sur le même serveur servira les fichiers du répertoire /usr/local/apache2/docs/top5freeware.

Juste pour réitérer, pour que l'hôte virtuel basé sur le nom fonctionne correctement, l'entrée DNS de ces deux sites Web doit pointer vers la même adresse IP externe du serveur physique sur lequel le serveur Web Apache est exécuté.


Linux
  1. Comment configurer SSL/TLS avec Apache httpd sur Red Hat

  2. Comment créer des hôtes virtuels Apache sur CentOS 7

  3. Configurer un hôte virtuel basé sur le nom dans Apache

  4. Comment configurer le système de fichiers ZFS sous Linux avec des exemples de commande zpool

  5. Comment configurer l'hôte virtuel Apache sur Ubuntu

Comment configurer un hôte virtuel Nginx

Comment configurer l'hôte virtuel Apache sur CentOS 8

Comment configurer l'hôte virtuel Apache sur Ubuntu 20.04 LTS

Comment installer Apache avec l'hôte virtuel sur CentOS 8

Comment configurer des hôtes virtuels Apache sur Ubuntu 20.04

Comment configurer l'authentification par mot de passe avec Apache sur Ubuntu 18.04