域名购买后,子域名解析绑定到服务器的核心操作就是去域名注册商或DNS服务商的控制台添加一条解析记录,将子域名指向服务器的IP地址,然后在服务器(如Nginx或Apache)上配置对应的站点或转发规则。整个过程通常只需要几分钟配置和最多一小时的生效等待,不涉及代码修改,下面把这条链路拆开讲清楚,从解析原理到服务器绑定,再到常见排查,一篇走完。
子域名解析到底是什么?先搞懂原理再动手
很多人在域名商买了域名,又在云厂商买了服务器,结果卡在“子域名”这三个字上,子域名就是主域名前面加的前缀,blog.example.com,其中的 blog 就是子域名前缀,example.com 是主域名,解析的本质是把这串字符翻译成服务器的IP地址,让访问者找到你家服务器。
行业共识认为,DNS解析是域名访问的第一道关卡,解析记录不生效,服务器配置得再好也白搭,所以理解记录类型比盲目复制命令更重要。
A记录和CNAME记录选哪个?
这是最常纠结的问题,直白讲:
- A记录:直接把子域名指向一个IPv4地址,
blog.example.com -> 123.123.123.123,适合服务器IP固定的场景,速度最快,没有中间商。 - CNAME记录:把子域名指向另一个域名,
blog.example.com -> example.com,再由后者解析到IP,适合用CDN、负载均衡或者IP可能变动的场景。
大多数个人站长的选择是A记录,因为云服务器IP固定、配置简单、生效判断直观,如果用的是CDN或对象存储,CNAME是主流,表格对比更清楚:
| 对比项 | A记录 | CNAME记录 |
|---|---|---|
| 指向目标 | IP地址 | 另一个域名 |
| 适用场景 | 独立服务器、固定IP | CDN、云存储、IP易变 |
| 解析速度 | 更快 | 略慢一次转发 |
| 维护成本 | IP变动需手动改 | 目标域名变化自动跟随 |
实际操作中,只要云厂商给了IP,优先A记录,买CDN时选CNAME,不用犹豫。
泛解析和单独解析怎么选?
如果你打算给每个功能模块开独立子域名,mail.example.com、app.example.com、img.example.com,你可以一个个添加解析记录,也可以直接做泛解析,把 .example.com 统一指向一个IP。
泛解析适合“先上线再说”的场景,所有子域名都落到同一台服务器,然后由服务器上的Nginx按域名规则分发到不同目录或服务,但缺点是如果以后某个子域名要单独指到别的服务器,必须先删除泛解析记录才能生效。建议是:子域名数量明确时,单独逐条添加;图省事再考虑泛解析。
实操:子域名解析到服务器的完整步骤
下面以最常见的场景演示:你在简米云或酷番云买了域名,服务器是CentOS或Ubuntu系统,安装了Nginx,不同服务商控制台文案略有差异,但逻辑一致。
第一步:找到DNS解析控制台
登录域名注册商网站,进入“域名管理”或“域名列表”,找到目标域名,点击“解析”或“DNS管理”,这一步的核心是找到 “添加记录” 按钮,如果你把DNS托管到了Cloudflare、DNSPod等第三方平台,则去对应平台操作。
第二步:添加A记录指向服务器IP
点击“添加记录”,填写以下内容:
- 记录类型:选A
- 主机记录:填子域名前缀,
blog,如果想让主域名不带www也访问,填 ;想加www,填www - 记录值:填你服务器的公网IP地址,
123.123.123 - TTL:默认即可,通常为600秒或1小时,新手不用改
保存后,解析记录就加上了。此时可以去服务器端开个端口确认,但先别急着关掉解析页面,因为后面可能用得上。
第三步:在服务器上绑定域名
这一步决定访问者到达服务器后,能不能看到对应内容,以Nginx为例,操作路径如下:
- SSH登录服务器,进入Nginx配置目录:
cd /etc/nginx/conf.d/ - 新建一个子域名配置文件:
vim blog.conf - 写入基础配置:
server { listen 80; server_name blog.example.com; root /var/www/blog; index index.html; }
- 保存后测试配置:
nginx -t - 加载配置:
nginx -s reload
如果你的子域名要指向一个独立应用,比如Tomcat、Node.js服务,则需要用 proxy_pass 做反向代理,核心思路是:Nginx收到子域名请求后,按 server_name 匹配,再转发给本机或其他机器的对应端口,Apache用户则在 httpd.conf 或 .htaccess 中配置 ServerName blog.example.com 即可。
重要提醒:如果服务器在云厂商安全组里,记得放行对应的端口,比如80、443,这一步漏了,解析没问题也访问不了。
第四步:验证解析是否生效
配置完成后,在本机命令行输入:
ping blog.example.comnslookup blog.example.com
如果返回的IP是你服务器IP,说明解析已生效,如果返回旧IP或无法解析,通常是TTL缓存未过期,等待几分钟到一小时后再查。在实际访问中,浏览器和本地DNS也会缓存,可以切换网络或用在线DNS查询工具辅助验证。
解析不生效怎么排查?按顺序查这三层
解析配置本身不难,难的是出问题后不知道从哪下手,根据经验,绝大多数解析失败发生在三个层面。
第一层:检查解析记录本身填写是否有误
最常见的坑是“主机记录”填成了完整域名,正确填法是只填子域名前缀,blog,而不是 blog.example.com,其次是记录值误填了内网IP或已失效的IP,遇到问题时,先回控制台核对记录是否保存成功,状态是否正常。
第二层:检查服务器是否识别该域名
有些服务器默认只监听一个域名或IP,如果Nginx配置里没有匹配 server_name 的规则,请求会被转发到默认站点,表现出来就是“访问IP能打开,访问域名打不开”或“打开的是别的网站”,这时检查Nginx配置文件是否有对应server块,并确认 server_name 和你的子域名完全一致,包括空格和标点。
第三层:检查本地DNS缓存
如果确认解析记录和服务器配置都没问题,但访问还是不对,那就是本地缓存了旧DNS记录,Windows下执行
ipconfig /flushdns,Mac下执行 sudo killall -HUP mDNSResponder,然后用无痕模式重新访问浏览器,这一招能解决很大比例的“假不生效”问题。
已备案的域名才能解析到大陆服务器吗?
这个问题经常和解析本身混在一起,影响不少站长。规则是:域名要解析到中国大陆的服务器上并提供Web访问,必须先完成ICP备案,不备案,域名解析到简米云、酷番云这类国内云服务器,会直接被拦截或强制提醒。
如果你的服务器在中国香港、海外,则不需要备案,解析到那里的服务器就直接可用,这也是很多人纠结“香港云服务器便宜还是国内云服务器便宜”时,最终选择香港的原因之一,但要注意,不备案只解决了速度问题,如果面向大陆用户,访问延迟依然存在,而且无法使用某些需要备案的CDN节点,具体怎么选,取决于你的用户群体和预算。
另一种常见场景是“子域名绑定到不同服务器”,比如主域名指向大陆服务器需要备案,但 mail.example.com 想指向海外邮件服务器,这种情况只要海外服务器不需要备案,直接添加A记录即可,备案是针对主域名和接入商的,子域名解析到非大陆服务器时,不受大陆备案限制。
Q&A:域名子域名解析常见疑问
子域名解析后多久可以生效?
通常几分钟到1小时内,TTL值越短,生效越快,如果设置了较长的TTL,最长可能需要24小时全球生效。
子域名可以同时添加多个记录类型吗?
可以,比如同时添加A记录指向服务器IP,再加一条CNAME记录指向CDN加速域名,但同类型、同主机记录的重复记录会导致解析冲突,大多数服务商不允许创建相同名称和类型的多条A记录,建议一个子域名只保留一条核心解析路径。
服务器已有主域名指向,再加子域名会不会冲突?
不会,Nginx和Apache都支持一个服务器配置多个站点,只要 server_name 不同即可,但要注意,如果子域名和主域名指向了同一个IP且端口相同,必须靠不同 server_name 区分请求,否则全部流量会落在第一个站点上。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/627037.html





