Domaines et multi-tenant
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
sudosur 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).
- Activez le mode :
bench config dns_multitenant on - Créez chaque site sous son nom de domaine :
bench new-site compta.example.com - Chez votre registraire, ajoutez une entrée DNS de type A pour ce domaine. Elle pointe vers l'adresse IP du serveur.
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 :
- Régénérez la configuration :
bench setup nginx - Rechargez Nginx :
sudo systemctl reload nginx
Le site répond ensuite sur le nouveau port ou le nouveau domaine.