二级域名解析与配置
方案一:用泛解析(Wildcard DNS)
最常见、最简单的方式。
步骤:
在阿里云 DNS 配置里新增一条解析:
主机记录:
*
记录类型:A 记录(或者 CNAME,指向统一主站)
记录值:服务器的 IP 或主域名(比如
www.bgdnet.cn
)。
这样
hefei.bgdnet.cn
、nanjing.bgdnet.cn
、user123.bgdnet.cn
……全都会解析到同一个服务器。在服务器(Nginx)配置里写一个统一规则:
server { listen 80; server_name *.bgdnet.cn; root /var/www/html; location / { # 你可以在应用层(比如 PHP / Node / Java)里根据 host 动态识别是哪个用户 proxy_pass http://127.0.0.1:3000; } }
在你的应用代码里,通过
request.host
(Node.js)、$_SERVER['HTTP_HOST']
(PHP)、request.getServerName()
(Java)等,拿到当前访问的二级域名,匹配数据库中的用户账号。
👉 好处:
👉 好处:
⚖️ 推荐选择
一次配置,支持无限二级域名。
适合你这种有上千用户的场景。
🚀 方案二:动态添加解析(调用 DNS API)
如果你需要每个子域名单独解析到不同的服务器(比如不同用户部署到不同 IP),那就要走 阿里云/腾讯云的 DNS API 动态添加。
步骤:
在阿里云控制台里创建 AccessKey(AK/SK)。
使用 阿里云 DNS SDK 或 HTTP API。
例如:调用AddDomainRecord
,自动创建hefei.bgdnet.cn
→ 指定 IP。你在用户注册时,就调用 API 自动加解析,不用手工登录阿里云。
适合 不同用户有不同 IP/服务器 的场景。
如果所有用户都在 同一台服务器 / 同一个系统 → 用 泛解析(方案一) 就行,最简单、0 运维成本。
如果用户有独立部署 / 不同 IP → 用 DNS API(方案二) 动态添加解析。
但会有 API 调用频率限制,并且解析生效有几秒 ~ 几分钟延迟。