我们做了一个多租户系统,很多甲方提出要求希望网站登陆页是他们自己的风格。
底层逻辑上,每个租户的确可以关联一套自己的登陆页皮肤,但是我们 saas 系统肯定唯一 IP ,我们就想每个租户可以有自己的域名,那不同的域名进来,看到对应不同皮肤的登陆页。
但是,这部分技术实现,我能想到的是走 nginx ,但 100 个域名我要改 100 次 nginx ,这个承受不了啊,彦祖们帮帮忙
1
kingjpa 2023-01-11 23:59:37 +08:00
2 个思路。
1.服务端可以获取当前用户访问的域名,然后匹配一个 css 样式 2.客户端 js 也可以获取当域名吧,同上 |
2
SP00F 2023-01-11 23:59:47 +08:00
应用层啊,应用层上做逻辑呗。应用层可以读 Domain 来源的啊
|
3
crysislinux 2023-01-12 00:02:33 +08:00 via Android
应用可以拿到域名,根据域名发不同的主题就好了
|
4
churchmice 2023-01-12 00:04:37 +08:00 via Android
nginx 搞一下很简单的啊,反正都是有规则的,你弄个脚本来一下就好了
|
5
crysislinux 2023-01-12 00:07:29 +08:00 via Android
nginx 这部分可以搞个泛域名解析,你数据库里存个客户的 instance 的名字就好了,每个 instance 最后是类似于 instance1.yourdomain.com 之类的域名,然后把这个域名发给客户让客户配置 cname 就行了。
|
6
spicy777 2023-01-12 00:09:57 +08:00 via iPhone
很简单吧,nginx 配置多个域名,然后代码根据域名去更换样式
|
7
wunonglin 2023-01-12 00:19:13 +08:00
泛域名+动态主题,应该可以解决你的问题。这样的话,就算是定制 UI 也能解决,网关转发到不同的 web 就行。
|
8
beneo OP 谢谢各位彦祖了
|
9
netnr 2023-01-12 08:40:50 +08:00 via Android
如果是 SPA 应用,建议前端根据二级域名异步加载主题包
如果是 SSR ,视图页面根据二级域名引入样式链接 如 theme_{domain}.css 不在 nginx 配置 |
10
lllllliu 2023-01-12 15:53:51 +08:00
NGINX 统一入口->站群管理代理(用户,参数,加解密,收费)->后端代理
|