Apache : créer des virtual hosts pour gérer plusieurs sites

La gestion de plusieurs sites internet à partir d’un même serveur web Apache est possible en configurant des hébergements virtuels (virtual hosts en anglais). Deux principaux types de virtual hosts existent : basé sur le nom – cas de ce tutoriel – et basé sur l’adresse IP. Cette dernière solution est préférable pour l’utilisation des protocoles SSL/TLS. Les virtual hosts sont pratiques aussi en phase de développement afin d’avoir un nom d’hôte dédié pour chaque projet.

1. Configuration d’Apache

Ici, on suppose que l’installation du serveur web est déjà réalisée; si ce n’est pas le cas, on se référe à cet article qui explique comment installer Apache et PHP sur Windows. La configuration de trois fichiers est nécessaire pour la mise en place des virtual hosts : le fichier httpd.conf d’Apache, un fichier contenant les paramètres des virtual hosts (par exemple, httpd-vhosts.conf) et le fichier host du système d’exploitation Windows. Le contenu du fichier httpd-vhosts.conf pourrait être directement saisi dans le httpd.conf d’Apache mais pour une meilleure organisation de travail, il est recommandé de les séparer.

Comment est déclaré un virtual host dans Apache? De manière basique, on le nomme par NameVirtualHost puis on le paramètre dans <VirtualHost> avec notamment le chemin du répertoire contenant les fichiers DocumentRoot et le nom du serveur ServerName.

NameVirtualHost nomdedomaine.dev 
<VirtualHost nomdedomaine.dev>
	ServerAdmin webmaster@nomdedomaine.dev
	DocumentRoot "C:/Apache24/htdocs/nomdedomaine/web"
	ServerName nomdedomaine.dev
	ServerAlias www.nomdedomaine.dev
	ErrorLog "logs/nomdedomaine.dev-error.log"
	CustomLog "logs/nomdedomaine.dev-access.log" common
	<Directory "C:/Apache24/htdocs/nomdedomaine/web">
		AllowOverride All
	</Directory>
</VirtualHost>

On saisit le ou les vitual hosts dans le fichier – ici httpd-vhosts.conf – puis on l’appelle en précisant son chemin dans le fichier de configuration Apache httpd.conf. On note que la plupart des archives Apache mises à disposition ont déjà des exemples de virtual hosts avec une ligne commentée pour inclure le fichier.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Ensuite, on configure le fichier hosts du système afin de pouvoir associer les noms d’hôte à une adresse IP. Sur Windows, le fichier se trouve sur ‘%SystemRoot%\System32\drivers\etc’ – avec %SystemRoot% souvent défini par ‘C:\Windows’ – et il est en lecture seule. Pour le modifier, il faut donc le copier – sur le bureau par exemple – et l’enregistrer sous pour avoir tous les droits. Dans l’exemple ci-dessous, l’adresse locale de la machine est associée au localhost, à l’hôte virtuel configuré précédemment et à son alias. Une fois modifiée, on paramètre le fichier hosts en lecture seule puis on remplace l’ancien fichier.

# localhost name resolution is handled within DNS itself.
	127.0.0.1       localhost
	::1             localhost
	127.0.0.1       nomdedomaine.dev
	127.0.0.1       www.nomdedomaine.dev

On redémarre Apache et dans le navigateur web, on peut accéder au contenu via les différents noms d’hôtes définis par les virtual hosts.

2. Utilisation dans le Système d’Informations Géographiques

Pour un projet de géomatique, l’installation de plusieurs virtual hosts est intéressante puisqu’on peut associer chaque nom d’hôte à un unique serveur cartographique comme Geoserver. Comme on a défini précédemment un proxy pour lier Apache et Geoserver, il est possible d’appeler les services de Geoserver par les différents noms d’hôtes comme : http://nomdedomaine.dev/geoserver, http://nomdedomaine2.dev/geoserver, etc.

En terme d’organisation dans le serveur cartographique, en interne, on pourrait définir un nom d’espace de travail associé à un nom d’hôte. Puis, on sécurise l’accès aux services et aux données spatiales en configurant des rôles ciblés pour chaque espace de travail.

Partager l'article
Taggé , , , .Mettre en favori le Permaliens.

A propos Florian Delahaye

Passionné de Géomatique

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *