Skip to content
VDS · Sites web et serveurs web

Plusieurs sites sur un seul serveur

Comment héberger une dizaine de sites sur un seul VPS : arborescence des répertoires, configurations et utilisateurs séparés, certificat partagé et estimation de la charge selon le grade.

Mis à jour le 23 août 2026

Une seule adresse IPv4 publique peut servir n'importe quel nombre de domaines : le serveur web route les requêtes selon l'en-tête Host. La limite ne vient pas des adresses, mais de la mémoire et du disque de votre offre.

Organisation

Conservez un seul modèle, sinon dans six mois vous ne saurez plus quel site appartient à qui :

/var/www/example.ru/public
/var/www/example.ru/logs
/var/www/shop.ru/public
/var/www/shop.ru/logs

Gardez un fichier de configuration distinct par site : /etc/nginx/sites-available/<domain>, activé via un lien symbolique dans sites-enabled. Désactiver un site revient alors à supprimer un lien symbolique et à recharger, au lieu de chercher le bon bloc dans un fichier partagé.

Configuration

server {
    listen 80;
    server_name example.ru www.example.ru;
    root /var/www/example.ru/public;
    index index.html index.php;
    access_log /var/www/example.ru/logs/access.log;
}

Configurez aussi un « site par défaut » pour les domaines inconnus, sinon la première configuration par ordre alphabétique s'ouvrira pour tout domaine tiers pointant vers votre adresse :

server {
    listen 80 default_server;
    server_name _;
    return 444;
}

Séparation des permissions

Si les sites appartiennent à des clients ou à des projets différents, ne leur donnez pas un utilisateur commun : une faille dans un script donnerait sinon accès à tous les autres.

useradd -r -d /var/www/example.ru -s /usr/sbin/nologin site-example
chown -R site-example:www-data /var/www/example.ru
chmod 750 /var/www/example.ru

Pour PHP, créez un pool FPM distinct par site avec son propre user et son propre listen — voir PHP-FPM. Séparez aussi vos bases de données : utilisateurs et privilèges.

Certificats

Une seule exécution de certbot couvre plusieurs domaines à la fois :

certbot --nginx -d example.ru -d www.example.ru -d shop.ru -d www.shop.ru

Le renouvellement est mutualisé, un seul timer. Détails — Let's Encrypt.

Combien de sites tiendront

Comptez en mémoire, pas en nombre de domaines. Un site statique ne coûte presque rien ; un site CMS avec base de données coûte des centaines de mégaoctets.

OffreMémoireRepère
VDS-1 (2 GB)2 GB1–2 sites CMS ou une dizaine de sites statiques
VDS-2 (4 GB)4 GB3–5 sites CMS
VDS-3 (8 GB)8 GB8–12 sites CMS

Le disque est fini lui aussi : 40 GB sur VDS-1, 250 GB sur VDS-6. Vous ne pouvez que passer à une offre supérieure, en payant la différence pour les jours restants de la période payée.

Erreurs courantes

SymptômeCause
Tous les domaines affichent le même siteserver_name ne correspondait pas, le premier bloc a donc traité la requête
Journaux de tous les sites dans un seul fichieraccess_log n'est pas défini dans le bloc du site
Un site a tout fait tomberPool PHP-FPM partagé sans limites
Disque pleinJournaux et sauvegardes sur le même disque — configurez logrotate

Avant d'ajouter un nouveau site, consultez les graphiques de mémoire de la semaine passée dans « Vue d'ensemble » du panneau à l'adresse /hosting/vds/m/<id>. Si le pic est déjà au plafond, un nouveau site sera la cause des plantages, pas la conséquence.