Monter un Virtual Host avec Apache 2
Par M le lundi 2 avril 2007, 20:47 - Technique - Lien permanent
Comment faire pour afficher 2 contenus différents avec un seul serveur ?
Le Virtual Host est fait pour vous dans ce cas.
Avec HTTP 1.1, le navigateur va ajouter une en-tête
Voici comment ça se configure avec Apache2
Le Virtual Host est fait pour vous dans ce cas.
Avec HTTP 1.1, le navigateur va ajouter une en-tête
Host: permettant au serveur de séléctionner le contenu à renvoyer.Voici comment ça se configure avec Apache2
Exemple pris avec un serveur Apache2.2 sur une Debian Etch, ces instructions sont aussi valables sur d'autres distributions sans gands changements (voire aucun).
Les Virtual Host sont définis dans le répertoire
L'activation du Vhost se fait en faisant un lien symbolique vers la définition du Vhost dans le répertoire
Normallement, il y a un Vhost nommé * et sans aucune information sur le nom du serveur. Il s'agit du Vhost par défaut quand Apache n'a pas reçu d'en-tête
Voici un exemple minimum de fichier définissant un Vhost :
Un reload d'Apache avec par exemple un
Les Virtual Host sont définis dans le répertoire
/etc/apache2/sites-available/ . Il y a par convention, 1 fichier par Vhost.L'activation du Vhost se fait en faisant un lien symbolique vers la définition du Vhost dans le répertoire
/etc/apache2/sites-enabled/.Normallement, il y a un Vhost nommé * et sans aucune information sur le nom du serveur. Il s'agit du Vhost par défaut quand Apache n'a pas reçu d'en-tête
Host: ou que le nom d'hôte ne correspond à aucun Vhost connu.Voici un exemple minimum de fichier définissant un Vhost :
<VirtualHost *>
ServerName vhost.domain.com # nom du Vhost
DocumentRoot /home/www/vhost.domain.com/ # emplacement des fichiers
<Directory /home/www/partage.fabroce.net/> # options d'accès
Options Indexes FollowSymLinks MultiViews # index automatiques, on suit les liens symboliques et on gère la négociation de contenus
AllowOverride None # on ne tient pas compte des .htaccess
Order allow,deny
allow from all # autorisation d'accès à tout le monde
allow from .fabroce.net
</Directory>
</VirtualHost>Un reload d'Apache avec par exemple un
/etc/init.d/apache2 reload suffit à prendre en compte le nouveau Vhost.
Commentaires
J'ai moi aussi un serveur perso sous Debian Etch, et je compte m'acheter un nom de domaine : je me demande alors comment diriger des domaines différents vers des sites différents sur la même machine.
J'ai bien l'impression que les Virtual Host sont ce que je cherche, merci de l'info
(mais je te laisse me contacter si je me trompe ^^)
Oui, ça sert exactement à ça!
Vu que le navigateur demande un nom de domaine précis dans sa requète, Apache sait comment lui répondre.
Bonsoir,
j'ai une debian 4.0 sur laquelle j'ai installé apache 2 et je souhaites faire pointer deux site web sur la même ip. j'ai donc renseigné mon fichier host ("mon_ip_prive" "site1" et deuxième ligne "mon_ip_prive" "site2" ), j'ai fait deux vhost et lorsque depuis un accès internet je tape le premier nom de site je vois bien ses fichiers, et si je tape le nom du deuxième site je vois les fichiers du premier...
et vice versa comme s'il y avait un cache.... (en gros le client garde en mémoire l'adresse ip publique qui pointe vers un site et si on lui modifie l'url, voyant l'ip identique, il affiche les pages web du premier site chargé...)
qu'en pensez vous et quelques pistes me conseillez vous de suivre?
merci d'avance
B
Essaie de taper dans un shell sous windows: ipconfig /flushdns mais je ne suis pas sur que ton probleme vienne de ce dont tu parlais...
Salut,
Moi aussi j'ai le même probleme que Bleite.
En local sur la debian 4.0 j'arrive à acceder aux 2 sites virtuels.
Http://gca et http:/test_linux me donne bien 2 pages differentes.
Mais dés que je le fais sur une autre machine (windows ou linux) avec leur fichiers hosts modifié comme il faut , j'arrive toujours sur le site par defaut.
Une idée ?