Skip to content

Hôtes virtuels avec Apache

I- Principe de la virtualisation :

La virtualisation permet à une machine physique de simuler plusieurs machines virtuelles. Il n'y a en réalité qu'un équipement qui héberge plusieurs logiciels en parallèle.

Particulièrement utile pour les hébergeurs qui n'achètent pas un serveur physique pour chacun de leur clients mais partagent les ressources d'un gros serveur. La virtualisation permet de mieux définir la taille des ressources que l'on affecte à un client.

C'est le principe de l'hébergement mutualisé.

II- Hôtes virtuels sur Apache :

Dans Apache, tous les hôtes virtuels sont présents en tant que fichiers dans

/etc/apache2/sites-available/

Le serveur par défaut est configuré dans /etc/apache2/sites-available/default mais vous pouvez en ajouter d'autres.

Les lignes suivantes sont le minimum à écrire dans un fichier de configuration d'hôte virtuel. Dans mon exemple, il s'agit du fichier /etc/apache2/sites-available/monsite

NameVirtualHostwww.monsite.com:80
<VirtualHostwww.monsite.com:80 >
    DocumentRoot/racine/de/mon/site
    ServerName www.monsite.com
</VirtualHost>

Les lignes NameVirtualHost, et ServerName permettent d'écrire le nom du site.

La ligne DocumentRoot précise où se trouve les fichiers du site dans Linux.

III- Distinction des hôtes virtuels :

Il existe trois façons de distinguer les hôtes virtuels installés dans Apache :

  • Par nom de domaine
  • Par adresse IP
  • Par port

Le plus simple pour l'utilisateur est d'avoir un nom de domaine par site. Dans ce cas, quand le serveur reçoit une requête pour l'un, il sait à quel hôte virtuel communiquer la requête.

Dans ce cas, l'hôte virtuel est configuré comme ça :

NameVirtualHost www.monsite.com:*
NameVirtualHost www.unautre.com:*

On peut également demander au serveur de distinguer les hôtes virtuels en indiquant une adresse IP par hôte virtuel.

NameVirtualHost192.168.0.1:*
NameVirtualHost192.168.0.2:*

Enfin on peut distinguer les hôtes en indiquant un port différent pour chaque serveur.

NameVirtualHost*:80
NameVirtualHost*:8000

IV- Ports d'écoute d'Apache :

Par défaut Apache écoute sur le port 80. Si vous utilisez d'autre ports, il faut les déclarer dans le fichier /etc/apache2/ports.conf

Par défaut ce fichier contient :

Listen 80

Vous pouvez y ajouter d'autres ports en ajoutant des lignes Listen, par exemple :

Listen 80
Listen 8000
Listen 8080

V- Activer les nouveaux sites virtuels :

Pour prendre en compte ce que vous venez de configurer, activez les nouveaux sites avec la commande (par exemple pour mon premier site, page 1) :

a2ensite monsite

Et redémarrer la configuration d'Apache :

/etc/init.d/apache2 reload