[{"data":1,"prerenderedAt":353},["ShallowReactive",2],{"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fdomaine":3,"section:\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fdomaine":352},{"id":4,"title":5,"body":6,"description":337,"extension":338,"meta":339,"navigation":340,"path":348,"seo":349,"stem":350,"__hash__":351},"docs\u002F1.v5\u002F5.administrer\u002F03.exploitation\u002F2.domaine.md","Domaines et multi-tenant",{"type":7,"value":8,"toc":329},"minimark",[9,13,31,36,55,59,66,82,85,131,142,146,153,202,224,228,231,270,288,292,295,308,311,315,325],[10,11,5],"h1",{"id":12},"domaines-et-multi-tenant",[14,15,16,17,21,22,26,27,30],"p",{},"Un même ",[18,19,20],"em",{},"bench"," peut servir plusieurs sites. Nginx choisit le site de deux façons : selon le ",[23,24,25],"strong",{},"port"," de la requête, ou selon le ",[23,28,29],{},"nom de domaine"," demandé (mode DNS multi-tenant). Cette page concerne une installation auto-hébergée.",[32,33,35],"h2",{"id":34},"prérequis","Prérequis",[37,38,39,48],"ul",{},[40,41,42,43,47],"li",{},"Un bench installé en production, avec Nginx (",[44,45,46],"code",{},"bench setup production",").",[40,49,50,51,54],{},"Un accès ",[44,52,53],{},"sudo"," sur le serveur pour recharger Nginx.",[32,56,58],{"id":57},"multi-tenant-par-port","Multi-tenant par port",[14,60,61,62,65],{},"C'est le mode par défaut. ",[44,63,64],{},"bench setup nginx"," attribue un port à chaque site qui n'en a pas :",[37,67,68,75],{},[40,69,70,71,74],{},"le premier site reçoit le port ",[23,72,73],{},"80"," ;",[40,76,77,78,81],{},"les sites suivants reçoivent le port ",[23,79,80],{},"8001",", puis 8002, et ainsi de suite.",[14,83,84],{},"Pour fixer le port d'un site :",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bench set-nginx-port \u003Csite> \u003Cport>\n","bash","",[44,93,94],{"__ignoreMap":91},[95,96,99,102,106,110,113,117,120,122,125,128],"span",{"class":97,"line":98},"line",1,[95,100,20],{"class":101},"sBMFI",[95,103,105],{"class":104},"sfazB"," set-nginx-port",[95,107,109],{"class":108},"sMK4o"," \u003C",[95,111,112],{"class":104},"sit",[95,114,116],{"class":115},"sTEyZ","e",[95,118,119],{"class":108},">",[95,121,109],{"class":108},[95,123,124],{"class":104},"por",[95,126,127],{"class":115},"t",[95,129,130],{"class":108},">\n",[14,132,133,134,137,138,141],{},"Exemple fictif : ",[44,135,136],{},"bench set-nginx-port compta.example.com 8010",". Le site répond alors sur ",[44,139,140],{},"http:\u002F\u002F\u003Cip-du-serveur>:8010",".",[32,143,145],{"id":144},"multi-tenant-par-nom-de-domaine","Multi-tenant par nom de domaine",[14,147,148,149,152],{},"Dans ce mode, le nom du dossier du site (",[44,150,151],{},"sites\u002F\u003Csite>",") est le nom de domaine. Nginx sert le site qui correspond au domaine demandé, sur le port 80 (et 443 avec un certificat).",[154,155,156,177,195],"ol",{},[40,157,158,159],{},"Activez le mode :",[86,160,162],{"className":88,"code":161,"language":90,"meta":91,"style":91},"bench config dns_multitenant on\n",[44,163,164],{"__ignoreMap":91},[95,165,166,168,171,174],{"class":97,"line":98},[95,167,20],{"class":101},[95,169,170],{"class":104}," config",[95,172,173],{"class":104}," dns_multitenant",[95,175,176],{"class":104}," on\n",[40,178,179,180],{},"Créez chaque site sous son nom de domaine :",[86,181,183],{"className":88,"code":182,"language":90,"meta":91,"style":91},"bench new-site compta.example.com\n",[44,184,185],{"__ignoreMap":91},[95,186,187,189,192],{"class":97,"line":98},[95,188,20],{"class":101},[95,190,191],{"class":104}," new-site",[95,193,194],{"class":104}," compta.example.com\n",[40,196,197,198,201],{},"Chez votre registraire, ajoutez une entrée DNS de type ",[23,199,200],{},"A"," pour ce domaine. Elle pointe vers l'adresse IP du serveur.",[203,204,207],"callout",{"color":205,"icon":206},"amber","i-heroicons-exclamation-triangle",[14,208,209,210,213,214,219,220,223],{},"Un site créé avant l'activation du mode garde son ancien nom. Le renommer exige de déplacer son dossier (",[44,211,212],{},"mv sites\u002F\u003Cancien> sites\u002F\u003Cnouveau>","). Faites d'abord une ",[215,216,218],"a",{"href":217},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fsauvegardes-et-restauration","sauvegarde",". Mettez aussi à jour le site par défaut (",[44,221,222],{},"sites\u002Fcurrentsite.txt",") et les tâches planifiées qui citent l'ancien nom.",[32,225,227],{"id":226},"ajouter-un-domaine-personnalisé-à-un-site","Ajouter un domaine personnalisé à un site",[14,229,230],{},"Un site peut répondre à d'autres domaines que son nom :",[86,232,234],{"className":88,"code":233,"language":90,"meta":91,"style":91},"bench setup add-domain www.example.com --site compta.example.com\nbench setup remove-domain www.example.com --site compta.example.com\n",[44,235,236,254],{"__ignoreMap":91},[95,237,238,240,243,246,249,252],{"class":97,"line":98},[95,239,20],{"class":101},[95,241,242],{"class":104}," setup",[95,244,245],{"class":104}," add-domain",[95,247,248],{"class":104}," www.example.com",[95,250,251],{"class":104}," --site",[95,253,194],{"class":104},[95,255,257,259,261,264,266,268],{"class":97,"line":256},2,[95,258,20],{"class":101},[95,260,242],{"class":104},[95,262,263],{"class":104}," remove-domain",[95,265,248],{"class":104},[95,267,251],{"class":104},[95,269,194],{"class":104},[14,271,272,275,276,279,280,283,284,141],{},[44,273,274],{},"add-domain"," accepte aussi ",[44,277,278],{},"--ssl-certificate"," et ",[44,281,282],{},"--ssl-certificate-key"," (chemins absolus) si vous avez votre propre certificat. Pour un certificat Let's Encrypt, voir ",[215,285,287],{"href":286},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fcertificat","Certificat SSL",[32,289,291],{"id":290},"appliquer-la-configuration-à-nginx","Appliquer la configuration à Nginx",[14,293,294],{},"Après un changement de port, l'activation du mode DNS, la création d'un site ou l'ajout d'un domaine :",[154,296,297,302],{},[40,298,299,300],{},"Régénérez la configuration : ",[44,301,64],{},[40,303,304,305],{},"Rechargez Nginx : ",[44,306,307],{},"sudo systemctl reload nginx",[14,309,310],{},"Le site répond ensuite sur le nouveau port ou le nouveau domaine.",[32,312,314],{"id":313},"pour-aller-plus-loin","Pour aller plus loin",[316,317,318],"card-group",{},[319,320,322],"card",{"icon":321,"title":287,"to":286},"i-mdi-lock-outline",[14,323,324],{},"Configuration du certificat SSL avec Let's Encrypt",[326,327,328],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":91,"searchDepth":98,"depth":256,"links":330},[331,332,333,334,335,336],{"id":34,"depth":256,"text":35},{"id":57,"depth":256,"text":58},{"id":144,"depth":256,"text":145},{"id":226,"depth":256,"text":227},{"id":290,"depth":256,"text":291},{"id":313,"depth":256,"text":314},"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.","md",{"reviewed":340,"last_verified":341,"sources":342},true,"2026-11-03",[343,344,345,346,347],"bench:bench\u002Fcommands\u002Fconfig.py","bench:bench\u002Fcommands\u002Futils.py","bench:bench\u002Fcommands\u002Fsetup.py","bench:bench\u002Fconfig\u002Fnginx.py","frappe:frappe\u002Fcommands\u002Fsite.py","\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fdomaine",{"title":5,"description":337},"1.v5\u002F5.administrer\u002F03.exploitation\u002F2.domaine","U2NcA-ld14X9IehTFFZzqCRPqnTcUnwYJyrGy1tnwXA",{},1793871944893]