您现在的位置是:知识 >>正文
域名泛解析自动生成二级域名
知识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信息发布平台
知识做小生意的人,谁没为推广渠道发过愁?线下发传单,成本高还常被拒收;投竞价广告,钱烧得跟纸一样,效果却像扔进深井里的石子——听个响就没了。我认识一个做工业配件的老板,前两年咬牙投了几万块百度推广,电话没 ...
【知识】
阅读更多