适用人群说明
这篇文章特别适合以下三类读者:
泛域名解析全攻略,从零搭建多站点架构,避开90%新手踩过的坑
- 个人站长:手上有一个域名,想搭建多个子站点(如 blog.yourdomain.com、shop.yourdomain.com 等),但不知道怎么高效管理。
- 中小团队运维:公司需要为不同业务线创建独立子域名,又不想为每个子域名单独购买证书和配置服务器。
- 建站新手:刚刚接触域名解析、服务器配置,希望一次性搞懂泛域名解析的原理、配置和常见问题。
如果你属于上述任意一类,请往下看,我会手把手带你完成整套流程。
第一步:理解泛域名解析是什么(避开第一个认知坑)
很多人被“泛域名”三个字吓住,其实原理极其简单。
常规解析:你需要在 DNS 面板里为每个子域名添加一条记录,
- blog → 指向服务器IP
- shop → 指向服务器IP
- app → 指向服务器IP
每增加一个子站,就多一条记录,麻烦,且容易漏配置。
泛域名解析:只用添加一条记录,*.yourdomain.com`**,所有未单独定义的子域名(如 test.yourdomain.com、abc.yourdomain.com)全部自动指向同一个服务器IP。
常见踩坑提醒⚠️:泛域名解析不能覆盖顶级域名(yourdomain.com)本身,如果你希望 yourdomain.com 也打开网站,必须单独为 (或空白记录)添加一条 A 记录,很多新手配置完泛域名后发现 www.yourdomain.com 打不开,就是这个原因。
第二步:服务器环境准备(三个配置要点)
1 选择服务器与操作系统的要点
推荐使用 Linux + Nginx 或 Linux + Apache,Windows 服务器也能做,但性能和稳定性不如 Linux,且证书管理更麻烦。
配置要点1:服务器必须有一个公网静态IP,如果你用动态IP,必须配合 DDNS(动态域名解析)服务,但泛域名 + DDNS 的组合稳定性较差,不建议新手使用。
配置要点2:安装好 Web 服务器后,必须放行 80 和 443 端口,很多人在云服务商的安全组(防火墙)里忘记放行 443 端口,导致 HTTPS 配置无效,排查半天才发现是端口没开。
2 安装面板(可选但强烈推荐)
如果你不习惯纯命令行操作,安装 宝塔面板 或 1Panel,面板的好处是:可以可视化配置网站、管理证书、处理 PHP 版本和数据库。
配置要点3:面板安装完成后,第一时间修改默认端口(默认 8888 或 9999),同时开启面板的“安全入口”功能,避免被扫描工具直接命中。
第三步:域名 DNS 配置(核心操作)
登录你的域名注册商(如阿里云、腾讯云、Namecheap)的 DNS 管理面板。
1 添加泛域名解析记录
- 记录类型:A 记录
- 主机记录:
- 记录值:你的服务器公网 IP 地址
- TTL:默认即可(一般 600 秒)
常见踩坑提醒⚠️: 这个符号在 DNS 面板里有些注册商会解释为“泛域名”,有些则不会,如果面板里找不到 ,试试输入 *.yourdomain.com 格式,部分注册商(如某些海外域名商)要求 *记录必须和@` 记录同时存在**,否则泛域名无法解析。
2 单独配置顶级域名和 www
- 添加一条 记录(或留空),指向同一 IP
- 添加一条
www记录,指向同一 IP
至此,DNS 部分完成,泛域名的配置只需要 1 条 A 记录,剩下的是服务器端的工作。
第四步:Web 服务器配置(Nginx 示例)
以 Nginx 为例,核心逻辑是:用一个 server block 捕获所有子域名请求。
1 关键配置代码
server {
listen 80;
server_name *.yourdomain.com yourdomain.com;
root /var/www/html/$subdomain;
index index.html index.php;
# 自动将子域名提取为变量
if ($host ~* ^([a-z0-9-]+)\.yourdomain\.com$) {
set $subdomain $1;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理(如有)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
配置要点4:注意 root 指令中的 $subdomain 变量,这个变量是根据请求的子域名动态生成的,比如访问 blog.yourdomain.com,网站根目录就是 /var/www/html/blog;访问 shop.yourdomain.com,根目录就是 /var/www/html/shop。
2 创建子站点目录
在 /var/www/html/ 下,为每个子站点创建独立文件夹:
mkdir -p /var/www/html/blog mkdir -p /var/www/html/shop mkdir -p /var/www/html/app
每个文件夹里放一个简单的 index.html,写上“Hello from blog”等标识,用于测试。
常见踩坑提醒⚠️:如果你用 Apache,配置逻辑类似但语法不同,关键是开启 VirtualDocumentRoot 特性,Apache 可以用 %1 捕获子域名,很多人配置 Apache 泛解析失败,是因为没有加载 mod_vhost_alias 模块。
第五步:SSL 证书配置(泛域名证书的坑)
1 必须用泛域名证书
普通证书(如仅绑定 www.yourdomain.com)无法覆盖所有子域名,你必须申请 泛域名 SSL 证书,即 *.yourdomain.com 格式。
2 推荐使用免费方案
- Let's Encrypt + Certbot:支持泛域名,但验证方式必须是 DNS-01 验证(而非 HTTP-01),这意味着你需要将 Certbot 与 DNS 服务商(如 Cloudflare、阿里云 DNS)进行 API 对接。
- ZeroSSL:操作更友好,部分面板内置集成。
配置要点5:使用 Certbot 申请泛域名证书时,命令示例:
certbot certonly --manual --preferred-challenges dns -d *.yourdomain.com -d yourdomain.com
运行后会要求你在 DNS 面板添加一条 TXT 记录。注意:这条 TXT 记录的 TTL 设置越短越好(如 60 秒),验证完成后可以改回默认,很多人在这一步因为 DNS 缓存导致验证失败,被锁住 5-10 分钟。
3 Nginx 配置 HTTPS
在 Nginx 的 server block 中增加:
listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
常见踩坑提醒⚠️:如果证书部署后,部分子域名显示“不安全”,很可能是证书不包含该子域名,泛域名证书只能覆盖 一个层级 的子域名,即 *.yourdomain.com 可以覆盖 blog.yourdomain.com,但不能覆盖 a.b.yourdomain.com(两级),这是 TLS 协议的底层限制,无法绕过。
第六步:网站程序部署(以 WordPress 为例)
1 多站点架构建议
- 每个子域名一个独立站点:在面板中添加多个网站,每个网站绑定一个子域名,根目录相互独立,这是最清晰的方式。
- 通配符版 WordPress 多站点模式:WordPress 本身支持子域名多站点网络(Multisite),但配置复杂,涉及数据库和
.htaccess规则改动,新手不建议一开始就尝试。
2 面板操作流程(以宝塔为例)
- 点击“添加站点”
- 域名输入
blog.yourdomain.com - 根目录选择
/www/wwwroot/blog - 创建数据库(如有需要)
- 上传程序文件,完成安装
重复上述操作即可为 shop、app 等子站分别创建站点。
配置要点6:每个子站最好使用独立数据库,不要把所有子网站的数据放在同一个数据库里,否则后期数据迁移或备份会非常痛苦。
常见踩坑总结(最后帮你扫一遍雷)
- 泛域名无法覆盖顶级域名:记得单独配置 和
www。 - SSL 证书层级限制:泛域名证书只能覆盖单级子域名,两级及以上用不了。
- DNS 缓存延迟:修改解析后,最长可能等待 24-48 小时全球生效,建议先在自己电脑上清 DNS 缓存测试(mac:
sudo dscacheutil -flushcache;Windows:ipconfig/flushdns)。 - 服务器端口遗漏:80、443 端口必须在云服务商安全组和服务器自身防火墙同时放行。
- 根目录权限错误:Nginx 运行用户(通常是
www-data)必须对网站目录有读取权限,很多新手用 root 上传文件后,忘记chown导致 403 错误。 - 面板默认端口暴露:面板管理端口必须修改和加安全入口,否则被扫描器入侵只是时间问题。
最后一步:验收清单
配置完成后,执行以下检查:
- 访问
yourdomain.com→ 打开正常 ✅ - 访问
www.yourdomain.com→ 正常打开 ✅ - 访问
blog.yourdomain.com→ 显示 blog 目录内容 ✅ - 访问
shop.yourdomain.com→ 显示 shop 目录内容 ✅ - 访问一个未定义的子域名(如
xxx.yourdomain.com)→ 要么正常返回,要么 404(取决于你的配置逻辑)✅ - 所有页面 HTTPS 正常,无安全警告 ✅
通过以上六个步骤,你已经完成了泛域名解析 + 多站点搭建的全部流程,你的一个域名可以承载无限多个子站点,且每个站点之间相互独立、互不影响,以后再新增业务线,只需要添加上游的站点目录,修改 Nginx 配置(如需),即可秒级上线——这才是泛域名解析的真正价值所在。



发表评论