Introduction
Héberger plusieurs sites web sur un seul serveur Ubuntu est une solution économique pour les développeurs, les petites entreprises et les amateurs. Ce guide vous expliquera comment configurer des hôtes virtuels dans Apache et Nginx pour héberger plusieurs sites web sur le même serveur. À la fin de ce tutoriel, vous serez en mesure de configurer votre serveur pour gérer efficacement plusieurs domaines ou sous-domaines.
Articles précédents :
01. Introduction au serveur Ubuntu – SysOSX: AI & Cloud
02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud
03. Maîtriser la ligne de commande Linux pour le serveur Ubuntu – SysOSX: AI & Cloud
05. Notions de base des réseaux pour le serveur Ubuntu : guide complet – SysOSX: AI & Cloud
06. Installer et gérer des logiciels sur le serveur Ubuntu : guide complet – SysOSX: AI & Cloud
07.Appliquer les correctifs et mettre à jour le serveur Ubuntu : guide complet – SysOSX: AI & Cloud
09. Audit et journalisation des serveurs Ubuntu
10. Outils de surveillance du système pour le serveur Ubuntu : guide complet – SysOSX: AI & Cloud
12. Audit et conformité pour le serveur Ubuntu : bonnes pratiques – SysOSX: AI & Cloud
Prérequis
Pour suivre ce guide, assurez-vous d’avoir :
- Un serveur Ubuntu (la version 20.04 ou ultérieure est recommandée).
- Un compte utilisateur avec des privilèges
sudo. - Plusieurs noms de domaine pointant vers l’adresse IP de votre serveur.
- Des connaissances de base des commandes Linux.
Partie 1 : héberger plusieurs sites web avec Apache
Étape 1 : installer le serveur web Apache
Si Apache n’est pas déjà installé, exécutez la commande suivante :
sudo apt update && sudo apt install apache2 -y
Étape 2 : configurer des hôtes virtuels pour chaque site web
Apache utilise des hôtes virtuels pour servir plusieurs sites web depuis un seul serveur. Chaque site web disposera de son propre fichier de configuration d’hôte virtuel.
Créer des répertoires pour les sites web
- Créez des répertoires distincts pour chaque site web :
sudo mkdir -p /var/www/website1.com /var/www/website2.com
- Attribuez la propriété de ces répertoires à votre compte utilisateur :
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com
Créer des fichiers de configuration d’hôtes virtuels
- Créez un fichier de configuration pour le premier site web :
sudo nano /etc/apache2/sites-available/website1.com.conf
- Ajoutez la configuration suivante :
<VirtualHost *:80>
ServerName website1.com
ServerAlias www.website1.com
DocumentRoot /var/www/website1.com
ErrorLog ${APACHE_LOG_DIR}/website1_error.log
CustomLog ${APACHE_LOG_DIR}/website1_access.log combined
</VirtualHost>
- Créez un fichier de configuration pour le deuxième site web :
sudo nano /etc/apache2/sites-available/website2.com.conf
- Ajoutez la configuration suivante :
<VirtualHost *:80>
ServerName website2.com
ServerAlias www.website2.com
DocumentRoot /var/www/website2.com
ErrorLog ${APACHE_LOG_DIR}/website2_error.log
CustomLog ${APACHE_LOG_DIR}/website2_access.log combined
</VirtualHost>
Activer les hôtes virtuels
- Activez les configurations d’hôtes virtuels :
sudo a2ensite website1.com.conf
sudo a2ensite website2.com.conf
- Rechargez Apache pour appliquer les modifications :
sudo systemctl reload apache2
Étape 3 : tester la configuration d’Apache
- Créez un simple fichier
index.htmlpour chaque site web :
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html
- Visitez
http://website1.comethttp://website2.comdans votre navigateur pour vérifier la configuration.

Étape 4 : sécuriser les sites web avec SSL/TLS
Installer Certbot
Installez Certbot avec le plugin Apache :
sudo apt install certbot python3-certbot-apache -y
Obtenir des certificats SSL
Exécutez Certbot pour chaque site web :
sudo certbot --apache -d website1.com -d www.website1.com
sudo certbot --apache -d website2.com -d www.website2.com
Certbot configurera automatiquement SSL pour les deux sites web et redirigera le trafic HTTP vers HTTPS.
Partie 2 : héberger plusieurs sites web avec Nginx
Étape 1 : installer le serveur web Nginx
Si Nginx n’est pas déjà installé, exécutez :
sudo apt update && sudo apt install nginx -y
Étape 2 : configurer des blocs de serveur pour chaque site web
Nginx utilise des blocs de serveur (similaires aux hôtes virtuels d’Apache) pour servir plusieurs sites web depuis un seul serveur.
Créer des répertoires pour les sites web
- Créez des répertoires distincts pour chaque site web :
sudo mkdir -p /var/www/website1.com /var/www/website2.com
- Attribuez la propriété de ces répertoires à votre compte utilisateur :
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com
Créer des fichiers de configuration de blocs de serveur
- Créez un fichier de configuration pour le premier site web :
sudo nano /etc/nginx/sites-available/website1.com
- Ajoutez la configuration suivante :
server {
listen 80;
server_name website1.com www.website1.com;
root /var/www/website1.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/website1_error.log;
access_log /var/log/nginx/website1_access.log;
}
- Créez un fichier de configuration pour le deuxième site web :
sudo nano /etc/nginx/sites-available/website2.com
- Ajoutez la configuration suivante :
server {
listen 80;
server_name website2.com www.website2.com;
root /var/www/website2.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/website2_error.log;
access_log /var/log/nginx/website2_access.log;
}
Activer les blocs de serveur
- Créez des liens symboliques pour activer les blocs de serveur :
sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/
- Testez la configuration de Nginx :
sudo nginx -t
- Rechargez Nginx pour appliquer les modifications :
sudo systemctl reload nginx
Étape 3 : tester la configuration de Nginx
- Créez un simple fichier
index.htmlpour chaque site web :
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html
- Visitez
http://website1.comethttp://website2.comdans votre navigateur pour vérifier la configuration.
Étape 4 : sécuriser les sites web avec SSL/TLS
Installer Certbot
Installez Certbot avec le plugin Nginx :
sudo apt install certbot python3-certbot-nginx -y
Obtenir des certificats SSL
Exécutez Certbot pour chaque site web :
sudo certbot --nginx -d website1.com -d www.website1.com
sudo certbot --nginx -d website2.com -d www.website2.com
Certbot configurera automatiquement SSL pour les deux sites web et redirigera le trafic HTTP vers HTTPS.
Références
Conclusion
Héberger plusieurs sites web sur un seul serveur Ubuntu est un moyen pratique et économique de gérer des applications web ou des domaines. Que vous utilisiez Apache ou Nginx, le processus consiste à créer des répertoires, à configurer des hôtes virtuels ou des blocs de serveur, et à sécuriser vos sites web avec des certificats SSL/TLS via Certbot. En suivant ce guide, vous pourrez héberger efficacement plusieurs domaines ou sous-domaines, en vous assurant que votre serveur est optimisé pour l’évolutivité et la sécurité.
Apache et Nginx sont tous deux de puissants serveurs web, et le choix entre les deux dépend souvent de vos besoins précis. Apache offre de nombreuses options de configuration et une grande compatibilité, tandis que Nginx excelle en performances et en gestion des connexions simultanées. Quel que soit votre choix, ce guide vous donne les connaissances de base pour gérer efficacement plusieurs sites web.
Restez à l’écoute pour le prochain sujet : Gérer le stockage et les disques sur un serveur Ubuntu Dans ce prochain guide, vous apprendrez à configurer l’initialisation des disques, à créer des partitions pour différents systèmes de fichiers et à étendre les disques, y compris leur montage dans le système de fichiers. Ne le manquez pas !
7 thoughts on “14. Host Multiple Websites on a single Ubuntu Server: Useful tips”