您现在的位置是:知识 >>正文

域名泛解析自动生成二级域名

知识2人已围观

简介泛解析加通配符证书,再套一层动态生成逻辑,就能让任意二级域名指向同一个服务。这套玩法在SaaS建站、多租户系统里已经跑了好几年,但很多人第一次接触时还是会愣一下:域名还能这么用? 所谓泛解析,就是在D ...

泛解析加通配符证书,域名域名再套一层动态生成逻辑,泛解就能让任意二级域名指向同一个服务。析自这套玩法在SaaS建站、动生多租户系统里已经跑了好几年,成级但很多人第一次接触时还是域名域名会愣一下:域名还能这么用?

所谓泛解析,就是泛解在DNS里配一条 *.example.com 的A记录。这条记录一挂,析自abc.example.com、动生xyz.example.com、成级甚至a.b.c.example.com 全都会解析到同一个IP。域名域名你不需要为每个二级域名单独加记录,泛解省事,析自也省得等DNS生效。动生我最早注意到这个机制是成级在给一个客户做小程序后台,他们要求每个商户有自己的访问入口,比如 shop123.example.com。如果手动加解析,几千个商户根本管不过来。泛解析一开,世界安静了。

但光有泛解析还不够。浏览器地址栏里输入的二级域名五花八门,服务器怎么知道用户到底想访问哪个商户?这就轮到Nginx或者应用层来干活了。Nginx配置里写 server_name ~^(?<subdomain>.+)\\.example\\.com$;,把子域名抓出来,然后传给后端。后端拿到 shop123 这个字符串,去数据库里查对应的站点配置,返回不同的页面内容。整个过程对用户来说是无感的,他以为自己访问了一个独立站点,其实背后是同一套代码在跑。

证书是个绕不开的坎。泛解析域名得配泛域名证书,也就是 *.example.com 这种。普通单域名证书只认 www.example.com,换成 abc.example.com 浏览器立刻报红。Let's Encrypt 从2018年开始支持通配符证书,但申请时必须用DNS-01验证,得在DNS里加一条TXT记录。自动化脚本可以搞定,certbot配合DNS插件能续期,但第一次配的时候容易卡在权限上。我见过有人图省事直接用自签证书,结果每个访客都要点“继续访问”,体验直接崩掉。

动态生成这块,不同技术栈做法不一样。Node.js里用 req.headers.host 取域名,Python Flask用 request.host,PHP直接读 $_SERVER['HTTP_HOST']。拿到之后按点号切分,取第一段就是子域名。有些系统会做更复杂的映射,比如把子域名当租户ID,或者把子域名转成哈希去查缓存。一个坑是大小写问题,DNS不区分大小写,但数据库查询可能区分,统一转小写再处理比较稳妥。

这套方案不是没有代价。泛解析意味着任何乱七八糟的子域名都能解析到你的服务器,如果有人恶意扫 random123.example.com,你的应用得能正确处理——要么返回404,要么跳转到主站,不能直接抛500。另外SEO方面,搜索引擎可能把不同子域名当成不同站点,如果内容高度重复,权重会被分散。有些团队会在 robots.txt 里做限制,或者用canonical标签指回主域名。

我自己的经验是,泛解析最适合内部系统或者对SEO不敏感的场景。公开产品用的话,最好加一层子域名白名单校验,别让用户随便输入个不存在的子域名就触发一堆数据库查询。缓存也得做,子域名到租户ID的映射放在Redis里,别每次都查库。至于通配符证书,记得设个定时任务检查续期,Let's Encrypt的证书只有90天,过期那天整个泛解析域名全挂,那场面可不好看。

Tags:

相关文章

  • 渗透率是

    知识

    渗透率是。这三个字放在一起,像某种化学实验的术语,其实它无处不在——你家Wi-Fi信号穿墙的能力,就是渗透率;楼下咖啡店开在你小区门口,也是渗透率。我昨天在菜市场看见卖豆腐的老张,他手机里装着三个收钱 ...

    【知识】

    阅读更多
  • 落月漫画网站官网

    知识

    落月漫画的官网,打开第一眼就是一片深蓝夜色。月亮占了大半个首屏,边缘毛茸茸的,像被谁用橡皮擦蹭过。我盯着看了三秒才反应过来——那是漫画的翻页动画,鼠标滚轮一滑,月亮就缺一角,再滑,露出后面躲着的小人。 ...

    【知识】

    阅读更多
  • 免费B2B信息发布平台

    知识

    做小生意的人,谁没为推广渠道发过愁?线下发传单,成本高还常被拒收;投竞价广告,钱烧得跟纸一样,效果却像扔进深井里的石子——听个响就没了。我认识一个做工业配件的老板,前两年咬牙投了几万块百度推广,电话没 ...

    【知识】

    阅读更多


友情链接