Exploitation

Domaines et multi-tenant

Servir plusieurs sites sur un même bench, par port ou par nom de domaine (mode DNS multi-tenant), et ajouter un domaine personnalisé à un site.

Domaines et multi-tenant

Un même bench peut servir plusieurs sites. Nginx choisit le site de deux façons : selon le port de la requête, ou selon le nom de domaine demandé (mode DNS multi-tenant). Cette page concerne une installation auto-hébergée.

Prérequis

  • Un bench installé en production, avec Nginx (bench setup production).
  • Un accès sudo sur le serveur pour recharger Nginx.

Multi-tenant par port

C'est le mode par défaut. bench setup nginx attribue un port à chaque site qui n'en a pas :

  • le premier site reçoit le port 80 ;
  • les sites suivants reçoivent le port 8001, puis 8002, et ainsi de suite.

Pour fixer le port d'un site :

bench set-nginx-port <site> <port>

Exemple fictif : bench set-nginx-port compta.example.com 8010. Le site répond alors sur http://<ip-du-serveur>:8010.

Multi-tenant par nom de domaine

Dans ce mode, le nom du dossier du site (sites/<site>) est le nom de domaine. Nginx sert le site qui correspond au domaine demandé, sur le port 80 (et 443 avec un certificat).

  1. Activez le mode :
    bench config dns_multitenant on
    
  2. Créez chaque site sous son nom de domaine :
    bench new-site compta.example.com
    
  3. Chez votre registraire, ajoutez une entrée DNS de type A pour ce domaine. Elle pointe vers l'adresse IP du serveur.
Un site créé avant l'activation du mode garde son ancien nom. Le renommer exige de déplacer son dossier (mv sites/<ancien> sites/<nouveau>). Faites d'abord une sauvegarde. Mettez aussi à jour le site par défaut (sites/currentsite.txt) et les tâches planifiées qui citent l'ancien nom.

Ajouter un domaine personnalisé à un site

Un site peut répondre à d'autres domaines que son nom :

bench setup add-domain www.example.com --site compta.example.com
bench setup remove-domain www.example.com --site compta.example.com

add-domain accepte aussi --ssl-certificate et --ssl-certificate-key (chemins absolus) si vous avez votre propre certificat. Pour un certificat Let's Encrypt, voir Certificat SSL.

Appliquer la configuration à Nginx

Après un changement de port, l'activation du mode DNS, la création d'un site ou l'ajout d'un domaine :

  1. Régénérez la configuration : bench setup nginx
  2. Rechargez Nginx : sudo systemctl reload nginx

Le site répond ensuite sur le nouveau port ou le nouveau domaine.

Pour aller plus loin

Certificat SSL

Configuration du certificat SSL avec Let's Encrypt