SaaS系统从0到1搭建,03域名解析

978 阅读3分钟

前言

车队管理类似的SaaS平台,从0到1,咱继续..

上一篇咱撸到多数据源支持,现在咱在分析下如何识别租户:通过域名解析的方案!

域名解析

(我是后半夜Java,在掘金这分享下经验,那些靠copy的搬运作者,不要随意copy到其他平台了,哪天闲的就去投诉)

这个方案是一个判断当前请求的用户属于那个租户,也就是租户的识别,而识别租户有不同的方法,域名解析算是之一。所以想兼容考虑下这个。

域名,那就注册个,比如我在阿里云上注册个lovekid.top的域名(不知道你先看到这篇文章时,这个域名能否访问了哈),注册后,配置一些二级域名,但其实二级域名会比较高贵点,所以建议用三级域名。

image.png 那么问题来了,有点麻烦的,我这个个人注册的域名,就不去整那么多了,到时候用公司的比较好,(毕竟要花一些钞票的哈~)

咱SaaS平台给不同租户,根据租户code,生成一个三级域名,比如 ali.car.lovekid.top(阿里车队,举个栗子哈) 如果车队有他们自己域名,那我们可以继续给他配个三级域名,然后在平台数据里面做个逻辑绑定啥的。

这样一个客户(租户)可以有多个域名,来请求访问我们的SaaS平台,然后在我们的业务代码逻辑里根据过来的域名,处理初始化当前请求,在业务逻辑上增加上租户过滤。

在Nginx上配置,直接入口就给设置请求的服务:(不同服务不同租户) server { listen 80; # 3级 server_name car.lovekid.top; charset utf-8; location / { index login; proxy_pass http://127.0.0.1:8888; }

其他实际来配置吧,得有服务器配置来了,在去搞,而且这个方案也不是最佳实践的。

通过用户名

但其实,我是想直接通过用户登录我们SaaS平台后,马上去缓存里判断,这个用户是哪个租户的,也就是我会将租户存到缓存里去。

具体方案实现步骤:

1、入住的租户(多账号)都绑定到租户(业务字段)。

2、租户管理,在CRUD(增删改查)的逻辑里,都去同步更新Redis缓存。

3、用户登录的时候,本身就会获取用户信息(含租户code),这样通过code去缓存里取租户信息。

4、在最初的方案里,本车队SaaS平台已经先选定业务逻辑字段区分了,所以在逻辑处理上,就直接带上租户code....

总结:

多租户的用户识别,有多种方法,但稳妥的还是要登录后去查询下当前用户所在租户,考虑用户账号是否会变更租户?

SaaS系统从0到1搭建,下篇继续....