网站分站的技术实现 - V2EX
Dongxiaohao

网站分站的技术实现

  •  
  •   Dongxiaohao Jan 2, 2024 via Android 2603 views
    This topic created in 877 days ago, the information mentioned may be changed or developed.
    op 看见有一些网站可以开通分站(主要是发卡网),就是用户输入一个二级域名,或者根域名后面拼一段唯一 ID ,用户付完款就可以直接通过子域名或者指定域名访问他开通的分站,并且在他后台可以对分站进行配置,比较好奇这种分站实现的技术原理。



    1 、分站的子域名那种模式我的常规理解是去 nginx 配置域名,dns 配置解析之类的,如何实现动态自助就可以开通分站,并且可以访问的,还可以和用户绑定。



    2 、域名固定后面加一个唯一路径我的理解就是这个唯一路径相当于一个 code 和用户那边绑定,网站内容会根据这个 code 在数据库查询用户的设置,动态加载内容?(本人拙见)
    10 replies    2024-01-02 14:48:31 +08:00
    jahanngauss414
        1
    jahanngauss414  
       Jan 2, 2024 via Android
    dns 可以配通配符解析,然后在流量入口拿 host 就好了(可能不是这样的实现,我猜的)
    danbai
        2
    danbai  
    PRO
       Jan 2, 2024 via Android
    @jahanngauss414 之前我实现过一个类似的分站就是这样搞得。
    Dongxiaohao
        3
    Dongxiaohao  
    OP
       Jan 2, 2024 via Android
    @jahanngauss414 可以通配解析的话,那好像确实可以实现,服务端能拿到当前域名去操作,还不知道域名可以通配解析
    monkeyWie
        4
    monkeyWie  
       Jan 2, 2024   1
    在网关层做一个解析,然后放到请求头里透传到后端服务
    timnottom
        5
    timnottom  
       Jan 2, 2024
    我之前做过一个,域名泛解析,前端 js 通过正则匹配 host ( xx.example.com 中的 xx ),然后用 xx 去请求后端接口就行;不用动 nginx
    Dongxiaohao
        6
    Dongxiaohao  
    OP
       Jan 2, 2024
    @timnottom #5 我有个疑问,我这是前后端分离的项目,照这种模式,是不是前端模板是定死的,只是后端根据 host 来动态响应?如果用户瞎输一个二级域名,网页写死的话,就是打开模板,但是没数据。
    是不是在网页打开之前都会有一个请求,带着当前 host 去请求后端接口,查看这个站点是否注册,如果没注册,让 vue 跳到 404 页面?
    bubble21
        7
    bubble21  
       Jan 2, 2024
    1.前置:nginx 泛域名解析
    2.用户付完款 -> 动态解析 dns ,增加子域名
    3.前端使用当前访问域名请求接口
    4.后台获取子域名,匹配子站....
    之前公司多租户的做法,当时子域名没做 https
    twofox
        8
    twofox  
       Jan 2, 2024
    @Dongxiaohao axios 写个请求拦截器不就得行了

    请求前先检查本地缓存是否带有相关的 flag

    没有的话带上二级域名请求后端,判断是否有这个站点,有就写进缓存,没有就跳到 404
    timnottom
        9
    timnottom &nbs;
       Jan 2, 2024
    @Dongxiaohao #6 大概是你这思路;新打开一个网站,在所有动作之前,先通过这个"host"去请求后端数据(一般是站点配置,站点名之类的呀),之后再作其它处理
    soleils
        10
    soleils  
       Jan 2, 2024
    参考下 ruoyi-vue-pro 里多租户的功能, 有绑定域名的实现 https://doc.iocoder.cn/saas-tenant/#_6-%E7%A7%9F%E6%88%B7%E7%8B%AC%E7%AB%8B%E5%9F%9F%E5%90%8D
    About     Help     Advertise     Blog     API     FAQ     Solana     2642 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 15:47 PVG 23:47 LAX 08:47 JFK 11:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86