多租户
鸣谢
本功能最初由 GitHub@小熊(xtanyu) 大佬提交 PR,感谢大佬的开源贡献。
后端 PR:https://github.com/continew-org/continew-admin/pull/97 前端 PR:https://github.com/continew-org/continew-admin-ui/pull/34
cnadmin 基于 ContiNew Starter | 扩展模块-租户模块,采用行级隔离级别实现多租户能力。
租户使用
关于租户功能的基础使用,暂时可以通过下方文档了解,后续将根据需求进行完善。
- 后端代码使用,可阅读 ContiNew Starter | 扩展模块-租户模块
- 功能使用,可阅读 功能手册-租户管理、功能手册-套餐管理
租户域名
在创建/维护租户时,可以给租户绑定域名。租户用户即可通过绑定的域名来访问本系统,届时登录则无需输入租户编码。
场景示例:
- 系统默认通过
www.example.com域名访问。 - 租户 A 的用户,可以通过
a.example.com子域名访问本系统。 - 租户 B 的用户,可以通过
b.example.com子域名访问本系统。
DNS 配置
在域名管理控制台,增加如下解析配置。
| 主机记录 | 记录类型 | 记录值 |
|---|---|---|
| www | A | 服务器IP |
| * | A | 服务器IP |
Nginx 配置
通过调整 server_name,增加泛域名支持即可,SSL 可以申请泛域名证书(*.example.com)。
nginx
server {
listen 443 ssl;
server_name *.example.com;
ssl_certificate /etc/nginx/cert/example.com.pem;
ssl_certificate_key /etc/nginx/cert/example.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/admin;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 将 HTTP 请求转发到 HTTPS
server {
listen 80;
server_name *.example.com;
rewrite ^ https://$http_host$request_uri? permanent;
}本地开发
本地开发时,只需修改 hosts 文件即可进行测试。
127.0.0.1 www.example.com
127.0.0.1 a.example.com
127.0.0.1 b.example.com本地访问测试时,记得在域名后添加前端端口号。部署到服务器后,则根据你实际配置决定是否增加端口号进行访问。
例如: