本文详细介绍如何为 Hexo 博客配置二级域名访问,包括 DNS 解析设置、Nginx 反向代理配置、SSL 证书申请等完整流程,让你轻松实现
blog.yourdomain.com形式的独立博客访问。
目录
为什么使用二级域名
1.1 二级域名的优势
在开始配置之前,让我们先了解为什么推荐使用二级域名来部署 Hexo 博客:
主域名:zysicyj.top
二级域名示例:
├── blog.zysicyj.top ← 博客
├── www.zysicyj.top ← 主站
├── api.zysicyj.top ← API 服务
├── admin.zysicyj.top ← 管理后台
└── docs.zysicyj.top ← 文档站点
使用二级域名的好处:
| 优势 | 说明 |
|---|---|
| 🎯 独立性强 | 每个服务有独立的域名,便于用户记忆 |
| 🔒 安全隔离 | Cookie 不会跨二级域名共享,降低安全风险 |
| 📊 SEO 优化 | 搜索引擎将二级域名视为独立站点,有利于内容收录 |
| 🔧 灵活部署 | 不同二级域名可以指向不同服务器 |
| 📈 便于扩展 | 新增服务只需添加新的二级域名 |
1.2 二级域名 vs 子目录
本文推荐方案:二级域名部署
前置准备与检查
2.1 环境要求清单
在开始之前,请确保你已准备好以下内容:
yaml
2.2 环境检查命令
bash
2.3 本文示例环境
DNS 域名解析配置(重点)
⚠️ 重要提示:DNS 解析是二级域名访问的关键步骤,必须正确配置才能让用户通过域名访问到你的博客。
3.1 DNS 解析基础概念
在配置之前,先了解几个关键概念:
二级域名解析原理:
3.2 腾讯云 DNSPod 配置步骤
步骤 1:登录 DNSPod 控制台
访问:https://console.cloud.tencent.com/dnspod
步骤 2:选择域名
在域名列表中找到你的域名 zysicyj.top,点击「解析」按钮。
步骤 3:添加 DNS 记录
点击「添加记录」按钮,填写以下信息:
步骤 4:验证解析结果
添加完成后,等待 1-5 分钟让 DNS 生效,然后验证:
bash
3.3 完整 DNS 记录配置示例
为一个完整的博客站点,建议配置以下 DNS 记录:
┌─────────────────────────────────────────────────────────────┐
│ zysicyj.top DNS 记录完整配置 │
├──────────────┬──────────────┬──────────────┬───────────────┤
│ 主机记录 │ 记录类型 │ 记录值 │ 用途说明 │
├──────────────┼──────────────┼──────────────┼───────────────┤
│ @ │ A │ 服务器 IP │ 主域名 │
│ www │ A │ 服务器 IP │ www 访问 │
│ blog │ A │ 服务器 IP │ 博客二级域名 │
│ _acme-challenge │ TXT │ 自动管理 │ SSL 证书验证 │
└──────────────┴──────────────┴──────────────┴───────────────┘
DNS 记录管理界面示例:
┌─────────────────────────────────────────────────────────────────────┐
│ DNSPod 解析记录列表 │
├──────┬──────────────┬──────────────┬──────────────────┬────────────┤
│ 状态 │ 主机记录 │ 记录类型 │ 记录值 │ 操作 │
├──────┼──────────────┼──────────────┼──────────────────┼────────────┤
│ ✅ │ @ │ A │ 123.123.123.123 │ 编辑 删除 │
│ ✅ │ www │ A │ 123.123.123.123 │ 编辑 删除 │
│ ✅ │ blog │ A │ 123.123.123.123 │ 编辑 删除 │
│ ✅ │ _acme-challenge │ TXT │ [自动管理] │ 编辑 删除 │
└──────┴──────────────┴──────────────┴──────────────────┴────────────┘
3.4 其他 DNS 服务商配置
阿里云 DNS 配置:
1. 登录阿里云控制台
2. 进入「云解析 DNS」
3. 选择域名 zysicyj.top
4. 点击「添加记录」
5. 填写:
- 记录类型:A
- 主机记录:blog
- 记录值:服务器 IP
- TTL:10 分钟
Cloudflare DNS 配置:
1. 登录 Cloudflare 控制台
2. 选择域名 zysicyj.top
3. 进入「DNS」标签页
4. 点击「Add record」
5. 填写:
- Type: A
- Name: blog
- Content: 服务器 IP
- Proxy status: Proxied (橙色云朵)
- TTL: Auto
Godaddy DNS 配置:
1. 登录 GoDaddy 控制台
2. 进入「My Products」→「DNS」
3. 点击「Add New Record」
4. 填写:
- Type: A
- Host: blog
- Points to: 服务器 IP
- TTL: 1/2 hour
3.5 DNS 传播检查
DNS 记录添加后,需要等待全球 DNS 服务器同步,这个过程称为「DNS 传播」。
检查 DNS 传播状态:
bash
DNS 传播时间参考:
3.6 常见 DNS 配置问题
问题 1:添加记录后无法访问
bash
# 检查 DNS 是否生效
dig blog.zysicyj.top +short
# 如果返回空或旧 IP,说明 DNS 还未生效
# 解决方案:等待几分钟,或刷新本地 DNS 缓存
刷新本地 DNS 缓存:
bash
问题 2:主机记录填写错误
❌ 错误:填写 blog.zysicyj.top
✅ 正确:填写 blog
解释:主机记录只需要填写二级域名的前缀部分
系统会自动加上主域名
问题 3:多条记录冲突
如果之前配置过 CNAME 记录,需要先删除:
❌ 错误配置:
blog CNAME example.com
✅ 正确配置:
blog A 服务器 IP
注意:同一主机记录不能同时存在 CNAME 和其他记录
Hexo 安装与配置
4.1 安装 Node.js 和 npm
bash
4.2 安装 Hexo CLI
bash
# 全局安装 Hexo CLI
npm install -g hexo-cli
# 验证安装
hexo -v
4.3 创建 Hexo 博客
bash
# 创建博客目录
cd /root
hexo init blog
cd blog
# 安装依赖
npm install
# 目录结构说明
ls -la
Hexo 目录结构:
4.4 配置 Hexo 站点
编辑 _config.yml 文件:
yaml
4.5 创建第一篇文章
bash
# 创建新文章
hexo new post "我的第一篇博客文章"
# 文章会创建在 source/_posts/我的第一篇博客文章.md
文章 Front-matter 示例:
markdown
4.6 生成静态文件
bash
Nginx 反向代理配置
5.1 为什么使用反向代理
5.2 创建 Nginx 配置文件
创建 /etc/nginx/conf.d/blog.conf:
nginx
5.3 配置参数详解
| 参数 | 说明 | 推荐值 |
|---|---|---|
proxy_pass |
反向代理目标地址 | http://127.0.0.1:4000 |
proxy_set_header Host |
传递原始 Host 头 | $host |
proxy_set_header X-Real-IP |
传递真实客户端 IP | $remote_addr |
proxy_set_header X-Forwarded-For |
传递代理链 IP | $proxy_add_x_forwarded_for |
proxy_read_timeout |
读取超时时间 | 90 秒 |
ssl_protocols |
SSL 协议版本 | TLSv1.2 TLSv1.3 |
5.4 测试并应用配置
bash
5.5 启动 Hexo 服务器
bash
5.6 验证访问
bash
SSL 证书申请与配置
6.1 使用泛域名证书
由于我们已经有了泛域名证书 *.zysicyj.top,可以直接用于所有二级域名。
检查现有证书:
bash
# 查看证书列表
sudo certbot certificates
# 查看证书详情
openssl x509 -in /etc/letsencrypt/live/zysicyj.top/fullchain.pem -text -noout
证书覆盖范围:
✅ 保护的域名:
- zysicyj.top
- *.zysicyj.top(所有一级子域名)
- blog.zysicyj.top ← 我们的博客域名
- www.zysicyj.top
- api.zysicyj.top
- 任意子域名.zysicyj.top
6.2 如果没有泛域名证书
如果需要为特定二级域名单独申请证书:
bash
# 使用 standalone 方式申请(需要临时关闭 Nginx)
sudo systemctl stop nginx
sudo certbot certonly --standalone \
-d blog.zysicyj.top \
--email admin@zysicyj.top \
--agree-tos
# 申请完成后重启 Nginx
sudo systemctl start nginx
或使用 DNS 验证方式(推荐):
bash
# 使用腾讯云 DNS API 自动申请
sudo certbot certonly --manual \
--manual-auth-hook "/root/tencentcloud-dns-hook.py deploy" \
--manual-cleanup-hook "/root/tencentcloud-dns-hook.py cleanup" \
--preferred-challenges dns \
-d "blog.zysicyj.top" \
--email admin@zysicyj.top \
--agree-tos
6.3 配置证书自动续签
bash
6.4 SSL 配置优化
在 Nginx 配置中添加以下优化:
nginx
多二级域名统一管理
7.1 多博客/多站点架构
如果你有多个二级域名需要管理:
服务器架构:
┌─────────────────────────────────────────────────────────────┐
│ Nginx (入口) │
│ │
│ blog.zysicyj.top → /root/blog/ (Hexo 博客) │
│ docs.zysicyj.top → /root/docs/ (文档站点) │
│ wiki.zysicyj.top → /root/wiki/ (Wiki 系统) │
│ www.zysicyj.top → /root/www/ (主站) │
└─────────────────────────────────────────────────────────────┘
7.2 Nginx 多站点配置示例
创建 /etc/nginx/conf.d/multi-blog.conf:
nginx
7.3 DNS 批量配置
为多个二级域名添加 DNS 记录:
┌──────────────┬──────────────┬──────────────────┬────────────┐
│ 主机记录 │ 记录类型 │ 记录值 │ 用途 │
├──────────────┼──────────────┼──────────────────┼────────────┤
│ blog │ A │ 服务器 IP │ 博客 │
│ docs │ A │ 服务器 IP │ 文档 │
│ wiki │ A │ 服务器 IP │ Wiki │
│ www │ A │ 服务器 IP │ 主站 │
│ api │ A │ 服务器 IP │ API │
│ admin │ A │ 服务器 IP │ 管理后台 │
└──────────────┴──────────────┴──────────────────┴────────────┘
7.4 Hexo 多实例管理脚本
创建 /usr/local/bin/hexo-manager.sh:
bash
使用示例:
bash
# 查看所有实例状态
hexo-manager.sh status
# 启动博客
hexo-manager.sh start blog
# 重启文档站点
hexo-manager.sh restart docs
常见问题排查
8.1 DNS 相关问题
问题 1:DNS 解析不生效
bash
问题 2:DNS 记录冲突
bash
# 症状
# 同时存在 CNAME 和 A 记录
# 检查
dig blog.zysicyj.top ANY
# 解决方案
# 删除 CNAME 记录,只保留 A 记录
# 同一主机记录不能同时存在 CNAME 和其他记录类型
8.2 Nginx 相关问题
问题 1:502 Bad Gateway
bash
问题 2:504 Gateway Timeout
bash
问题 3:SSL 证书错误
bash
8.3 Hexo 相关问题
问题 1:Hexo 无法启动
bash
问题 2:文章不显示
bash
8.4 访问相关问题
问题 1:HTTP 不跳转 HTTPS
bash
问题 2:静态文件 404
bash
# 排查步骤
# 1. 检查 public 目录是否存在
ls -la /root/blog/public/
# 2. 重新生成静态文件
cd /root/blog && hexo generate
# 解决方案
# 如果使用反向代理,确保 Hexo 正常运行
# 如果直接提供静态文件,确保 root 路径正确
性能优化建议
9.1 Nginx 优化
nginx
9.2 Hexo 优化
yaml
9.3 启用缓存
bash
# 安装 hexo-generator-cache
npm install hexo-generator-cache --save
# 配置缓存
# _config.yml
cache:
enable: true
安全加固建议
10.1 防火墙配置
bash
# 只开放必要端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=2222/tcp # 自定义 SSH 端口
sudo firewall-cmd --reload
# 查看开放端口
firewall-cmd --list-all
10.2 限制访问频率
nginx
# 在 http 块中添加
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# 在 server 块中使用
location / {
limit_req zone=one burst=20 nodelay;
proxy_pass http://127.0.0.1:4000;
}
10.3 隐藏 Nginx 版本
nginx
# 在 nginx.conf 的 http 块中添加
server_tokens off;
总结
本文详细介绍了使用 Nginx 配置 Hexo 二级域名访问的完整流程,重点包括:
核心要点回顾
- ✅ DNS 解析配置 - 二级域名访问的基础,需要正确添加 A 记录
- ✅ Hexo 安装配置 - 博客系统安装和站点配置
- ✅ Nginx 反向代理 - 使用反向代理提供 HTTPS 访问
- ✅ SSL 证书配置 - 使用泛域名证书保护所有二级域名
- ✅ 多站点管理 - 统一管理多个二级域名博客
DNS 配置关键点
┌─────────────────────────────────────────────────────────────┐
│ DNS 配置检查清单 │
├─────────────────────────────────────────────────────────────┤
│ ✅ 主机记录只需填写前缀(如 blog) │
│ ✅ 记录类型选择 A 记录 │
│ ✅ 记录值填写服务器公网 IP │
│ ✅ TTL 设置 600 秒(便于快速生效) │
│ ✅ 等待 DNS 传播完成(1-10 分钟) │
│ ✅ 使用 dig/ping 验证解析结果 │
└─────────────────────────────────────────────────────────────┘
常用命令速查
bash
最后更新时间:2026-03-04
作者:运维技术团队


