如何做到不同的域名指向同一个网站 IP,单通过不同域名看到的网站登陆皮肤不同

2023-01-11 23:54:45 +08:00
 beneo

我们做了一个多租户系统,很多甲方提出要求希望网站登陆页是他们自己的风格。

底层逻辑上,每个租户的确可以关联一套自己的登陆页皮肤,但是我们 saas 系统肯定唯一 IP ,我们就想每个租户可以有自己的域名,那不同的域名进来,看到对应不同皮肤的登陆页。

但是,这部分技术实现,我能想到的是走 nginx ,但 100 个域名我要改 100 次 nginx ,这个承受不了啊,彦祖们帮帮忙

1056 次点击
所在节点    问与答
10 条回复
kingjpa
2023-01-11 23:59:37 +08:00
2 个思路。
1.服务端可以获取当前用户访问的域名,然后匹配一个 css 样式
2.客户端 js 也可以获取当域名吧,同上
SP00F
2023-01-11 23:59:47 +08:00
应用层啊,应用层上做逻辑呗。应用层可以读 Domain 来源的啊
crysislinux
2023-01-12 00:02:33 +08:00
应用可以拿到域名,根据域名发不同的主题就好了
churchmice
2023-01-12 00:04:37 +08:00
nginx 搞一下很简单的啊,反正都是有规则的,你弄个脚本来一下就好了
crysislinux
2023-01-12 00:07:29 +08:00
nginx 这部分可以搞个泛域名解析,你数据库里存个客户的 instance 的名字就好了,每个 instance 最后是类似于 instance1.yourdomain.com 之类的域名,然后把这个域名发给客户让客户配置 cname 就行了。
spicy777
2023-01-12 00:09:57 +08:00
很简单吧,nginx 配置多个域名,然后代码根据域名去更换样式
wunonglin
2023-01-12 00:19:13 +08:00
泛域名+动态主题,应该可以解决你的问题。这样的话,就算是定制 UI 也能解决,网关转发到不同的 web 就行。
beneo
2023-01-12 00:22:59 +08:00
谢谢各位彦祖了
netnr
2023-01-12 08:40:50 +08:00
如果是 SPA 应用,建议前端根据二级域名异步加载主题包
如果是 SSR ,视图页面根据二级域名引入样式链接
如 theme_{domain}.css
不在 nginx 配置
lllllliu
2023-01-12 15:53:51 +08:00
NGINX 统一入口->站群管理代理(用户,参数,加解密,收费)->后端代理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX