宝塔面板泛解析怎么设置
跟着这篇做完,你就能让 任意前缀.example.com 全部解析到自己的服务器,并在宝塔面板里正常访问、带上 HTTPS。
第一步:在域名服务商那边添加泛解析记录
这一步的目标是让 DNS 把所有子域名都指向你的服务器 IP。登录你买域名的平台(阿里云云解析、腾讯云 DNSPod、Cloudflare 都一样),找到 example.com 的解析设置,点「添加记录」,填四项:
- 记录类型:A
- 主机记录:
*(就一个星号,不要写*.example.com) - 记录值:你服务器的公网 IP
- TTL:600 秒(默认值即可)
保存后等 1~10 分钟生效。
注意:很多平台的主机记录只填
*,填成*.example.com会变成*.example.com.example.com,解析不生效。另外 Cloudflare 的橙色云朵(代理模式)会让源站 IP 被隐藏,如果你的宝塔要申请 Let's Encrypt 证书,建议先点成灰色云朵(仅 DNS)。
第二步:在宝塔面板新建站点并绑定泛域名
这一步让宝塔的 Nginx/Apache 接受所有子域名请求。登录宝塔面板(Linux 版 9.x),左侧菜单点「网站」→ 顶部「添加站点」,在「域名」输入框里分两行填:
example.com
*.example.com
根目录、FTP、数据库按需选择,PHP 版本按程序要求选,点「提交」。提交后宝塔会自动在 /www/server/panel/vhost/nginx/example.com.conf 里生成 server_name example.com *.example.com;。
注意:只写
*.example.com不写example.com,裸域名会访问不到。两个都要加。另外宝塔面板里如果有「默认站点」设置,未绑定的域名会落到默认站点上,排查问题时先确认这一点。
第三步:让不同子域名指向不同目录(可选)
如果只是想让所有子域名访问同一个站点,第二步做完就结束了。如果想让 blog.example.com 和 shop.example.com 读不同目录,在站点设置里点「配置文件」,在 server_name 那一行下面改成:
server_name ~^(?<sub>.+)\.example\.com$;
root /www/wwwroot/example.com/$sub;
保存后点「重载配置」。这样 blog.example.com 会去读 /www/wwwroot/example.com/blog/ 目录,目录不存在就返回 404。
注意:改配置文件前先复制一份备份,Nginx 语法错一个字符整站会起不来。改完点面板上的「重载配置」而不是「重启 Nginx」,出错时影响面更小。
第四步:给泛域名申请 SSL 证书
浏览器地址栏要显示小锁,得用泛域名证书(*.example.com)。在站点设置里点「SSL」标签 → 选「Let's Encrypt」→ 勾选 *.example.com 和 example.com → 验证方式选「DNS 验证」→ 选择你的 DNS 服务商并填 API 密钥(阿里云、DNSPod、Cloudflare 宝塔都支持)→ 勾选「自动续签」→ 点「申请」。
注意:Let's Encrypt 的泛域名证书只能用 DNS 验证,不能选「文件验证」,因为文件验证无法证明你拥有所有子域名。另外证书 90 天到期,自动续签依赖 API 密钥长期有效,换了密钥记得回来改。
第五步:验证泛解析是否生效
本地命令行执行:
ping test.example.com
返回的 IP 是你服务器 IP 就说明解析对了。如果还是旧 IP,Windows 执行 ipconfig /flushdns,Linux 执行 systemd-resolve --flush-caches,Mac 执行 sudo dscacheutil -flushcache。
小结
- 泛解析分两半:DNS 服务商加
*的 A 记录,宝塔站点里绑*.example.com,缺一半都不通。 - 宝塔域名栏里
example.com和*.example.com要同时填。 - 想按子域名分目录,用 Nginx 正则
server_name ~^(?<sub>.+)\.example\.com$;配合$sub拼路径。 - SSL 必须用泛域名证书,且只能走 DNS 验证,记得开自动续签。
- 解析不生效先清本地 DNS 缓存,再查 DNS 平台的记录和宝塔的默认站点设置。
原文链接:https://www.gj0.com/thread-977.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。