Vous êtes sur la page 1sur 3

14/03/2023 10:02 Héberger plusieurs sites sur un seul serveur apache

Héberger plusieurs sites sur un seul serveur apache


 Linux    apache    web

Aujourd’hui, je vous parle hébergement de site internet. Il m’arrive régulièrement d’avoir des petits sites à héberger (Gare ta car, WordPress de dev, …). Pour
ces sites, j’ai des besoins spécifiques qui ne me permettent pas de les héberger sur un hébergement mutualisé. N’ayant que peu de moyen, j’ai un seul serveur
WEB public hébergé sur un petit serveur de type VPS. Je vais donc vous expliquer ici comment héberger différents sites sur un seul et unique serveur WEB
apache grâce aux VirtualHost.

Comment accède t’on à un site internet ?


Tout d’abord, commençons par étudier comment accède un navigateur à un site internet. Lorsque vous entrer l’adresse d’un site dans votre navigateur (ou
lorsque vous cliquez sur un lien de votre moteur de recherche favori), votre navigateur va demander à votre serveur DNS (souvent celui de votre box) à quel
adresse IP se trouve ce site. Cette requête correspond à l’exécution d’un  nslookup www.site.fr .

$ nslookup garetacar.eu
Server:    192.168.1.1
Address:  192.168.1.1#53
 
Non-authoritative answer:
Name:  garetacar.eu
Address: 149.202.51.171

Une fois que votre navigateur connaît l’adresse IP du serveur du site, il va le contacter sur le port que vous aurez spécifié. Le port 80 pour les adresses
commençant par  http:// , 443 pour les sites en  https://  ou encore un autre port si l’url du site contient  :  après le nom de domaine (le port 3615 pour
http://www.exemple.fr:3615/index.html).
Ensuite votre navigateur va envoyer une requête HTTP GET au serveur WEB lui indiquant la page désirée et le site WEB que vous désirez voir s’afficher.

GET / HTTP/1.1
Host: garetacar.eu
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0

https://perhonen.fr/blog/2017/07/heberger-plusieurs-sites-seul-serveur-apache-3000 1/3
14/03/2023 10:02 Héberger plusieurs sites sur un seul serveur apache

Accept: */*
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
C’est donc à partir de ces informations que votre serveur WEB va renvoyer la page correspondant à la requête. Comme vous pouvez le voir dans la requête
nous avons une valeur Host, c’est celle-ci que nous utiliserons pour savoir quel site afficher.

Les VirtualHosts
Les VirtualHosts (VH) est un système permettant à partir d’une seule et unique IP de fournir plusieurs sites. Ces différents sites peuvent être servit sur des
ports différents : 80 (HTTP), 443 (HTTPS) ou encore sur des noms de domaines différents.
J’ai l’habitude de créer un fichier de config apache par VH, cela me permet de les activer et désactiver à mon bon vouloir. Sous Debian, les fichiers de
VirtualHosts sont à créer dans le répertoire  /etc/apache2/sites-available/  sous un nom du style  monsite.conf . Le  .conf  est important car
sinon votre fichier n’est pas considéré comme un fichier de config.

/etc/apache2/sites-available/monsite.conf
01 <VirtualHost *:80>
02         ServerName monsite.fr
03         ServerAlias monsite.com
04  
05         ServerAdmin webmaster@monsite.fr
06         DocumentRoot /var/www/monsite
07  
08         LogLevel info
09         ErrorLog ${APACHE_LOG_DIR}/monsite_error.log
10         CustomLog ${APACHE_LOG_DIR}/monsite_access.log combined
11 </VirtualHost>

Le fichier ci-dessus dit au serveur que si une requête arrivant sur n’importe quel IP et sur le port 80 (l.1  *:80 ) avec en valeur de  Host:
monsite.fr  ou  monsite.com  (l.2-3) alors il lui faut servir les fichiers se trouvant dans  /var/www/monsite  (l.6). Ensuite nous lui demandons de nous
enregistrer les logs dans des fichiers spécifique au site et non dans les fichiers de log apache standard (l.7-10). Les lignes obligatoires sont les lignes surlignées,
les autres ne permettant que d’ajouter des spécifications supplémentaires.
Maintenant que notre fichier de configuration est prêt, nous devons l’activer.

1 # a2ensite monsite.conf
2 Enabling site parks.
https://perhonen.fr/blog/2017/07/heberger-plusieurs-sites-seul-serveur-apache-3000 2/3
14/03/2023 10:02 Héberger plusieurs sites sur un seul serveur apache

3 To activate the new configuration, you need to run:


4   service apache2 reload
5 # service apache2 reload
Voila votre premier VirtualHost est actif, vous pouvez en créer autant que vous le souhaitez dans les limites de capacité de votre serveur. N’hésitez pas à poster
un commentaire si vous avez une question.
Sources: Documentation Apache

https://perhonen.fr/blog/2017/07/heberger-plusieurs-sites-seul-serveur-apache-3000 3/3

Vous aimerez peut-être aussi