V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beneo
V2EX  ›  问与答

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

  •  
  •   beneo · 2023-01-11 23:54:45 +08:00 via iPad · 1078 次点击
    这是一个创建于 700 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    10 条回复    2023-01-12 15:53:51 +08:00
    kingjpa
        1
    kingjpa  
       2023-01-11 23:59:37 +08:00
    2 个思路。
    1.服务端可以获取当前用户访问的域名,然后匹配一个 css 样式
    2.客户端 js 也可以获取当域名吧,同上
    SP00F
        2
    SP00F  
       2023-01-11 23:59:47 +08:00
    应用层啊,应用层上做逻辑呗。应用层可以读 Domain 来源的啊
    crysislinux
        3
    crysislinux  
       2023-01-12 00:02:33 +08:00 via Android
    应用可以拿到域名,根据域名发不同的主题就好了
    churchmice
        4
    churchmice  
       2023-01-12 00:04:37 +08:00 via Android
    nginx 搞一下很简单的啊,反正都是有规则的,你弄个脚本来一下就好了
    crysislinux
        5
    crysislinux  
       2023-01-12 00:07:29 +08:00 via Android
    nginx 这部分可以搞个泛域名解析,你数据库里存个客户的 instance 的名字就好了,每个 instance 最后是类似于 instance1.yourdomain.com 之类的域名,然后把这个域名发给客户让客户配置 cname 就行了。
    spicy777
        6
    spicy777  
       2023-01-12 00:09:57 +08:00 via iPhone
    很简单吧,nginx 配置多个域名,然后代码根据域名去更换样式
    wunonglin
        7
    wunonglin  
       2023-01-12 00:19:13 +08:00
    泛域名+动态主题,应该可以解决你的问题。这样的话,就算是定制 UI 也能解决,网关转发到不同的 web 就行。
    beneo
        8
    beneo  
    OP
       2023-01-12 00:22:59 +08:00 via iPad
    谢谢各位彦祖了
    netnr
        9
    netnr  
       2023-01-12 08:40:50 +08:00 via Android
    如果是 SPA 应用,建议前端根据二级域名异步加载主题包
    如果是 SSR ,视图页面根据二级域名引入样式链接
    如 theme_{domain}.css
    不在 nginx 配置
    lllllliu
        10
    lllllliu  
       2023-01-12 15:53:51 +08:00
    NGINX 统一入口->站群管理代理(用户,参数,加解密,收费)->后端代理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:38 · PVG 12:38 · LAX 20:38 · JFK 23:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.