第一次上线网站时,最容易把“域名接好了”理解成“网站已经部署好了”。其实用户在浏览器输入一个网址以后,中间至少经过四层:域名、DNS、部署服务和 HTTPS 证书。
把它们拆开,排错会简单很多。
域名:你买的是一个可管理的名字
例如 example.com。注册商负责登记你对这个名字的使用权和管理入口,但注册商并不会自动运行你的代码。
域名到期、注册信息或 Nameserver 配置属于这一层。
DNS:告诉全世界这个名字应该去哪里
DNS 可以理解成互联网的名称解析系统。A 记录把域名指向 IPv4 地址,AAAA 指向 IPv6,CNAME 常用来把一个名字别名到另一个主机名;不同平台还会用 TXT 做域名验证。
你可以在一家注册商买域名,把 DNS 托管给 Cloudflare,再把记录指向 Vercel。这三个角色完全可以是三家公司。
所以“我在 Vercel 加了域名,但打不开”时,要先确认 DNS 是否真的指到了 Vercel 要求的位置,而不是重复部署代码。
部署:代码到底在哪里运行
Vercel、Cloudflare Pages、自建服务器等负责真正托管构建产物或运行应用。
以 Vercel 为例,项目部署以后会先有平台域名。绑定自定义域名只是给这份部署增加一个新的访问入口。Vercel 官方流程也是先把域名加入项目,再根据提示配置 DNS;如果 Nameserver 不由 Vercel 管理,就需要在外部 DNS 服务商处增加它要求的记录。
部署失败和 DNS 失败是两类问题。前者可能是构建、环境变量、运行时错误;后者通常是解析记录、传播或域名配置。
TLS/SSL:为什么浏览器愿意显示 HTTPS
HTTPS 不只是“地址栏有把锁”。证书帮助客户端验证正在连接的域名身份,并参与建立加密连接。
现代托管平台通常会在域名解析正确后自动签发和续期证书;Cloudflare 作为代理时又多了一层浏览器到 Cloudflare、Cloudflare 到源站的连接配置。
这也是为什么错误的代理或 SSL 模式可能造成重定向循环、证书错误:两端都在根据自己理解强制 HTTPS。
排错时按顺序看
第一,域名有没有过期,Nameserver 当前是谁。
第二,用 DNS 查询确认 A、CNAME、TXT 是否是预期值,而不是只看控制台“已保存”。
第三,查看部署平台的项目状态和平台预览域名是否能打开。如果平台域名也坏,先修部署。
第四,DNS 正确以后看平台是否已确认域名并签发证书。
第五,再检查 www 与裸域、HTTP 与 HTTPS 的重定向是否只有一套明确规则。
记住这张关系图就够:注册商让你拥有域名;DNS 告诉别人去哪;部署平台在那里运行网站;TLS 让这个连接以 HTTPS 安全建立。网站打不开时先判断是哪一层,再动手。