Lorsque vous accédez à un hébergement en ligne, vous souhaiterez probablement savoir comment héberger plusieurs sites web sur un seul serveur. Même si cela peut sembler complexe, en approfondissant le sujet vous comprendrez que c'est tout à fait réalisable avec l'aide de guides techniques.
Différents serveurs web peuvent vous fournir des services gratuits, open source et largement utilisés dans le monde entier. Avant d'expliquer comment héberger plusieurs sites web sur un seul serveur, il convient toutefois de comprendre ce qu'est un serveur web et comment il fonctionne.
- Qu'est-ce qu'un serveur web ?
- Héberger plusieurs sites web sur un seul serveur : Apache
- Étape 1 : Créer un répertoire pour chaque site
- Étape 2 : Définir les permissions des dossiers
- Étape 3 : Configurer une page d'index
- Étape 4 : Copier le fichier de configuration pour chaque site
- Étape 5 : Modifier le fichier de configuration pour chaque site
- Étape 6 : Activer votre fichier de configuration
- Étape 7 : Vérifier les configurations Apache
- Héberger plusieurs sites sur un seul serveur : IIS
- Faire tourner plusieurs sites avec des adresses IP différentes sur un serveur IIS
- Conclusion : héberger plusieurs sites sur un seul serveur
- Questions fréquemment posées
Qu'est-ce qu'un serveur web ?
Un serveur web stocke et distribue le contenu d'un site : textes, images, vidéos et données applicatives. Les clients qui demandent ces contenus y accèdent grâce au serveur web. Le cas le plus courant est celui du navigateur web, qui demande des données à votre site lorsqu'un utilisateur clique sur un lien ou télécharge un fichier.
Un serveur web communique avec le navigateur via le protocole HTTP (HTTP) La plupart des pages web sont encodées en HTML (HTML). Le contenu peut être statique — textes et images — ou dynamique, comme la liste des articles qu'un client a mis dans son panier. La majorité des serveurs web prennent en charge des langages de scripts côté serveur pour intégrer de la logique métier dans les échanges et générer du contenu dynamique. Les langages couramment supportés incluent Active Server Pages (ASP), JavaScript, PHP, Python et Ruby.
Comment fonctionne un serveur web ?
Les serveurs web fonctionnent selon un modèle client-serveur . Dans cette architecture, le client envoie une requête au serveur.
Le serveur web suit plusieurs étapes pour traiter les requêtes des clients :
- Lorsqu'un utilisateur souhaite charger du contenu sur le site, le navigateur demande l'accès (Requête HTTP) via internet.
- Le navigateur recherche l'adresse IP du site demandé. Il traduit le URL des pages web grâce au Système de noms de domaine (DNS) ou en consultant son cache. Ce processus permet de localiser le serveur web où sont hébergés les fichiers du site.
- À ce stade, le serveur web reçoit la requête HTTP et la traite via son Serveur HTTP.
- Une fois que le serveur HTTP accepte la requête, il parcourt les fichiers du serveur pour récupérer les données correspondantes.
- Le serveur web renvoie les fichiers du site au navigateur qui a effectué la requête. L'utilisateur voit alors le contenu du site.
Notez que si le serveur HTTP ne parvient pas à trouver ou à traiter les fichiers demandés, un message d'erreur s'affiche dans le navigateur. Maintenant que vous maîtrisez les concepts fondamentaux des serveurs web, vous pouvez aussi apprendre à héberger plusieurs sites sur un même serveur.
Héberger plusieurs sites web sur un seul serveur : Apache
Pour héberger plusieurs sites sur un seul serveur, utilisez les fichiers d'hôtes virtuels de Apache pour indiquer quel domaine doit être utilisé. L'une des méthodes permettant de résoudre les requêtes de site s'appelle Les hôtes virtuels basés sur le nom. Lorsqu'un visiteur accède à votre site, la requête est transmise au serveur, qui détermine les fichiers à servir en fonction du nom de domaine. Cette technique vous permet d'héberger plusieurs sites sur un même serveur avec la même IP. Cet article explique comment configurer le fichier d'hôte virtuel pour chacun de vos domaines. Avant d'entrer dans les détails, assurez-vous d'être connecté en tant que compte root.
À lire aussi : “Hébergement Linux vs Windows : lequel vous convient le mieux ?”
Étape 1 : Créer un répertoire pour chaque site
Installez d'abord apache2 avec cette commande
Pour les systèmes basés sur Debian
apt install apache2 -y
Pour les systèmes basés sur CentOS
yum install apache2 -y
Vous devez créer un répertoire pour chaque site que vous souhaitez héberger (dans le dossier /var/www). Prenez domain.com et domain2.com comme exemples de noms de domaine.
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
Étape 2 : Définir les permissions des dossiers
chmod -R 755 /var/www
Étape 3 : Configurer une page d'index
Pour afficher une page d'accueil, vérifiez que le fichier index.html est créé pour chaque domaine. Vous pouvez y insérer quelque chose de simple, comme test pour domain.com dans ce fichier.
vim /var/www/domain.com/public_html/index.html
test pour domain.com
Enregistrez maintenant et quittez avec Échapper bouton et taper: wq
Vous pouvez utiliser la commande ci-dessous pour répéter toutes ces étapes pour votre second domaine.
vim /var/www/domain2.com/public_html/index.html
Étape 4 : Copier le fichier de configuration pour chaque site
Vous devez copier le fichier de configuration par défaut pour chaque site, afin de toujours disposer d'une copie de référence pour les créations futures.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
Étape 5 : Modifier le fichier de configuration pour chaque site
Vous devrez au minimum modifier et ajouter les lignes surlignées dans les balises <VirtualHost *:80> et </VirtualHost>.
Notez que ServerAlias est le nom alternatif de votre domaine ; dans ce cas, comme dans la plupart des situations, vous ajoutez www devant le nom de domaine afin que le site soit accessible aussi bien avec que sans le préfixe www (ServerName).
vim /etc/apache2/sites-available/domain.com.conf

Quittez et enregistrez à nouveau avec wq. Vous devez répéter cette opération pour votre fichier domain2.com.conf fichier ; veillez à mettre à jour le ServerName, ServerAlias, et DocumentRoot pour votre second domaine.
À lire aussi : “Apache vs NGINX”
Étape 6 : Activer votre fichier de configuration
Votre serveur lit par défaut le fichier 000-default.conf. Or, à l'étape précédente, nous avons créé un nouveau fichier de configuration pour chaque domaine. Nous devons donc désactiver le fichier par défaut et utiliser celui correspondant à la nouvelle configuration.
a2dissite 000-default.conf
Pour associer votre serveur à vos domaines, activez chacun des fichiers .conf que vous venez de créer.
a2ensite domain.com.conf
a2ensite domain2.com.conf
Redémarrons maintenant Apache pour prendre en compte les modifications.
systemctl restart apache2
Étape 7 : Vérifier les configurations Apache
Après le démarrage de Apache, vous pouvez vérifier que les configurations fonctionnent en modifiant votre fichier /etc/host sur votre machine ou le DNS de votre domaine.
Une fois chaque paramètre configuré, vous pouvez ouvrir votre site dans un navigateur pour voir les pages index.html créées à l'étape 3.
À lire aussi: Sur site ou Cloud
Héberger plusieurs sites sur un seul serveur : IIS
Un serveur web IIS (Internet Information Services) peut héberger des dizaines, voire des centaines de sites web. Vous pouvez y héberger plusieurs sites, tous en écoute et en réponse sur le même port TCP. Pourtant, l'interface du gestionnaire IIS permet d'héberger un autre site sans le lier à un port différent comme 8080. Cette section explique comment héberger plusieurs sites sur le même serveur IIS en les liant au même port et à la même adresse IP, ou à des adresses IP différentes.
Comment installer IIS sur un serveur Windows ?
Lorsque vous installez IIS sur Windows, un site web par défaut vide est créé et écoute sur le port web standard HTTP – TCP 80. En termes techniques, notre site est lié au port TCP/80. Pour ouvrir ce site, vous devez saisir le nom du serveur IIS (« http://web-srv1 ») ou son adresse IP (« http://192.168.1.100 ») dans votre navigateur.
Étape 1 : Liaison d'un site IIS
Un serveur IIS fonctionnant sur Windows Server permet d'héberger plusieurs sites web. Cependant, IIS ne distribue les requêtes HTTP correctement que si chaque site est identifié par une valeur unique. Un site IIS repose sur trois attributs qui forment une combinaison unique pour chaque site. Ces attributs sont les suivants :
- un numéro de port TCP
- une adresse IP
- un en-tête d'hôte (hostname)
Les informations sur les sites hébergés sont stockées dans l'attribut ServerBindings de la configuration IIS Metabase, selon le format suivant : IP:Port:Nom d'hôte. Ainsi, pour héberger plusieurs sites sur un seul serveur (même port et même adresse IP), vous devez utiliser un en-tête d'hôte unique.
Vous vous demandez peut-être ce qu'est un en-tête d'hôte. Il s'agit d'une partie de la requête HTTP envoyée au serveur, qui indique à quel site elle est destinée. Vous devez donc déclarer cet en-tête d'hôte côté serveur web. Assurez-vous que le DNS contient bien l'enregistrement qui fait correspondre le hostname et l'adresse IP du serveur web IIS.
Supposons maintenant que vous avez un site en cours d'exécution sur le serveur IIS, en écoute sur le port 80. Comment lier un deuxième site sur ce même port ?
Étape 2 : Liaison du deuxième site IIS
Dans le gestionnaire Internet Information Services (IIS), créez un nouveau site via la fenêtre Ajouter un site web et nommez-le TestSite. Ce site sera hébergé dans C:\inetpub\TestSite. Ne spécifiez pas encore le hostname.
Après avoir copié le contenu du site dans C:\inetpub\TestSite, ouvrez le Gestionnaire des services Internet (IIS) et, dans le nom d'hôte du serveur, ajoutez le site pour lancer l'assistant de configuration.


Après avoir cliqué sur Ok, un message d'avertissement s'affiche pour vous indiquer que vous ne pouvez pas utiliser binding *:80 pour ces deux sites Web.


Après avoir accepté cet avertissement, vous aurez un deuxième site lié au port 80. Vous ne pourrez donc pas le démarrer sans arrêter le premier site. L'image ci-dessous illustre ce comportement.

Hébergement Windows VPS
Découvrez nos offres d'hébergement Windows VPS à prix accessibles : matériel performant, latence minimale, et un Windows de votre choix offert !
Obtenez votre Windows gratuitHéberger plusieurs sites sur un serveur IIS avec les en-têtes d'hôte
Vous devez choisir un autre nom (nom d'hôte) pour le deuxième site IIS afin de créer un binding unique. Pour cela, faites un clic droit sur TestSite et sélectionnez Modifier Bindings. Sélectionnez le binding souhaité et cliquez sur Modifier.
Comme vous pouvez le voir dans l'image suivante, vous devez spécifier le nom d'hôte unique que l'utilisateur saisit. Dans ce tutoriel, nous utilisons TestSite ; entrez-le dans le champ Hostname.

Vous pouvez utiliser l'invite de commandes pour configurer le binding du site IIS. Si vous utilisez IIS 7 ou une version ultérieure, vous obtiendrez un résultat similaire à celui-ci après avoir exécuté la commande de configuration du binding :
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
Comme pour le premier site, vous pouvez également démarrer le second.

À ce stade, vous devez ajouter un alias DNS pour le serveur (A ou CNAME), pointant vers l'adresse IP ou le nom d'hôte de votre serveur web IIS. Si vous utilisez un domaine Active Directory, vous devez créer des enregistrements DNS sur le contrôleur de domaine. IIS vous permet de créer un enregistrement CNAME pour le nom TestSite dans la console DNS (dnsmgmt.msc) et de définir le nom de domaine de votre serveur IIS comme hôte cible FQDN.

Vous pouvez aussi créer cet enregistrement DNS via PowerShell avec la commande suivante :
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
Essayons d'ouvrir http://TestSite dans le navigateur. Si tout est correctement configuré, la page devrait s'afficher sans problème.

L'hébergement Linux simplifié
Vous cherchez une meilleure façon d'héberger vos sites et applications web ? Vous développez quelque chose de nouveau ? Vous n'aimez tout simplement pas Windows ? C'est pour ça que nous proposons Linux VPS.
Obtenez votre Linux VPSFaire tourner plusieurs sites avec des adresses IP différentes sur un serveur IIS
Voyons maintenant comment faire tourner deux sites sur le serveur web IIS avec des adresses IP différentes. Vous devez d'abord ajouter une interface VLAN distincte sur le serveur Windows, ou attribuer une adresse IP supplémentaire (alias) à la carte réseau.
Dans ce tutoriel, le serveur possède l'adresse IP principale 192.168.13.100, et nous allons ajouter l'alias IP 192.168.13.101 sur le même adaptateur réseau :
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True
Vous devez ensuite créer un enregistrement A pour votre nouveau site sur le serveur DNS :
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
Il reste à ouvrir les paramètres de liaison du site et à le lier à l'adresse IP supplémentaire de votre hôte. Vous pouvez gérer les liaisons de sites sur un serveur IIS via PowerShell. Pour cela, le module WebAdministration est utilisé :
Import-Module WebAdministration
Vous pouvez afficher les informations de tous les sites IIS disponibles et leurs liaisons :
Get-IISSite
Ou uniquement pour un site précis :
(Get-Website -Name NewSite).bindings.Collection

Utilisez la commande suivante pour modifier la liaison de ce site ; elle vous permet de changer les adresses IP, le port ou le nom :
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
Vous pouvez exécuter cette commande pour ajouter une nouvelle liaison à un site IIS spécifique :
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
La suppression d'une liaison s'effectue avec la commande suivante :
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
Comme vous venez de le voir, il est possible de faire tourner plusieurs sites web sur un serveur IIS, que ce soit sur des adresses IP différentes ou sur la même adresse IP avec le même numéro de port TCP.
Conclusion : héberger plusieurs sites sur un seul serveur
Cet article a présenté les concepts fondamentaux liés aux serveurs, pour vous aider à héberger plusieurs sites web sur un seul serveur. Nous proposons également plusieurs solutions d' Linux VPS hébergement, que vous pouvez utiliser pour faire fonctionner différents sites web sur un même serveur. Les offres Cloudzy réduisent le coût lié à la gestion de plusieurs serveurs, tout en vous laissant tirer pleinement parti de nos services. Vous pouvez par ailleurs faire évoluer facilement les ressources de votre serveur, notamment RAM, le stockage, le processeur et la bande passante.
Questions fréquemment posées
Peut-on héberger plusieurs sites sur un seul serveur web ?
Si votre serveur dispose de ressources importantes, comme suffisamment d'espace HDD, de RAM et de puissance CPU, vous pouvez héberger plusieurs sites web via l'hébergement virtuel. Le nombre de sites hébergeables sur votre serveur web est alors illimité.
Comment faire fonctionner deux sites sur un même serveur ?
Héberger plusieurs sites web sur un seul serveur web est appelé serveur virtuel. Assurez-vous également que le serveur choisi dispose de suffisamment de ressources pour gérer le trafic et les besoins en espace disque.
À quoi sert un serveur VPS ?
VPS est un service d'hébergement qui vous fournit des ressources dédiées (privées) sur un serveur. Contrairement à l'hébergement mutualisé, qui ne vous alloue pas d'espace serveur exclusif, VPS offre une solution plus sécurisée et plus stable.
Pourquoi utiliser VPS ?
L'hébergement VPS s'est largement démocratisé : son coût est généralement inférieur à celui d'un serveur dédié, tout en offrant une fiabilité, une sécurité et des performances supérieures à celles de l'hébergement mutualisé.