当前位置:首页 > 百科

子域名怎么创建

买完域名,域名创建下一步就是域名创建让它能用。很多人卡在子域名这一步——知道 blog.example.com 这种形式,域名创建但不知道从哪下手。域名创建其实创建子域名就两步:加一条 DNS 记录,域名创建然后在服务器上接住它。域名创建真正让人绕晕的域名创建是中间那些细节。

先说 DNS 记录。域名创建假设你已经有 example.com,域名创建现在想要一个 shop.example.com。域名创建登录你的域名创建域名注册商或者 DNS 服务商后台(Cloudflare、阿里云 DNS、域名创建DNSPod 都行),域名创建找到 example.com 的域名创建解析设置。添加一条记录:

类型:A 主机记录:shop 记录值:你的域名创建服务器 IP TTL:600

保存。等几分钟到几小时,DNS 生效后,shop.example.com 就会指向你填的那个 IP。就这么简单?对,DNS 层面确实就这一条记录的事。但很多人在这里踩坑:主机记录填了 shop.example.com 而不是 shop,结果变成 shop.example.com.example.com。记住,主机记录只填子域名前缀。

如果你的服务器 IP 是动态的,或者你想用 CNAME 指向另一个域名,也完全可以。比如 blog.example.com 想指向 Vercel 或 GitHub Pages,就加一条 CNAME 记录,值填平台给你的域名。这时候 DNS 只负责指路,证书和内容由平台处理。

DNS 配好只是第一步。浏览器访问 shop.example.com 时,请求到了你的服务器,但服务器怎么知道该返回什么?这取决于你用的 Web 服务器。

拿 Nginx 举例。默认情况下,Nginx 可能只有一个 server 块处理所有请求。你需要为子域名单独加一个:

server {  listen 80; server_name shop.example.com; root /var/www/shop; index index.html; }

这样访问 shop.example.com 就会去读 /var/www/shop 目录。如果用的是 Apache,对应的是 VirtualHost 配置。宝塔面板用户更省事,直接在面板里添加站点,绑定子域名就行。

有个细节容易被忽略:HTTPS。现在浏览器对没有 SSL 的站点会标“不安全”。给子域名申请证书,Let's Encrypt 是免费选择。用 certbot 的话,一条命令就能给子域名签发:

certbot --nginx -d shop.example.com

如果你用 Cloudflare 代理,它自带 SSL,源站证书可以用自签或者 Let's Encrypt,模式选 Full 或 Full (Strict)。别选 Flexible,容易出重定向循环。

再说个实际案例。我有个朋友做独立博客,主站 www.example.com 放在虚拟主机上,后来想加个 Wiki 子域名 wiki.example.com。他在 DNS 加了 A 记录指向同一台虚拟主机 IP,然后在主机控制面板里添加子域名绑定,目录指向 /wiki。十分钟搞定。但访问时一直 404,查了半天发现是虚拟主机默认文档没配 index.php。这种小坑很常见,跟 DNS 无关,纯粹是服务器配置问题。

还有一种情况:子域名指向内网服务。比如 nas.example.com 想访问家里的 NAS。你在 DNS 里把 nas 解析到家里公网 IP,然后在路由器上做端口转发,把 80 或 443 转到 NAS 的 IP。但很多家用宽带没有固定公网 IP,这时候要么用 DDNS,要么用 Cloudflare Tunnel 这类工具,不用开放端口也能穿透。

子域名数量没有硬性限制。你可以建 a.example.com、b.example.com……理论上无限。但泛解析 *.example.com 要谨慎,它会匹配所有未定义的子域名,容易导致意外解析。搜索引擎也可能把泛解析当成低质量内容。

创建子域名这件事,DNS 记录是入口,服务器配置是落地。两者都对上,才能正常访问。过程中遇到 404、502、证书错误,先检查 DNS 是否生效(dig shop.example.com),再看服务器日志。大部分问题出在 server_name 拼写错误或者防火墙没放行端口。

最后提一句:子域名和主域名在 SEO 上通常被视为独立站点。如果你想把权重集中,可以用子目录 example.com/shop 而不是子域名。但子域名在技术隔离、独立部署上更灵活。选哪个,看你的实际需求。

分享到: