上一篇
hexo绑定域名
- 行业动态
- 2025-05-08
- 2981
购买域名后,在DNS服务商设置A记录指向服务器IP,修改Hexo根目录_config.yml中的URL字段,主题CNAME配置(如有),执行hexo clean后重启本地服务器,浏览器访问新
Hexo绑定域名全流程详解(含DNS配置与HTTPS部署)
域名绑定前的准备
拥有可用域名
- 通过域名注册商(如阿里云、Namecheap、Google Domains)购买域名
- 确保域名已实名认证并完成所有权验证
Hexo项目初始化
hexo init blog cd blog npm install
准备服务器环境
- 可选方案:GitHub Pages、VPS(如阿里云ECS)、Vercel等
- 推荐组合:GitHub Pages + 自定义域名 + Let’s Encrypt SSL
DNS配置核心步骤
操作类型 | 主机记录 | 记录值 | TTL | 作用 |
---|---|---|---|---|
A记录 | 服务器IP地址(如123.45.67.89) | 300s | 将域名指向服务器IP | |
CNAME记录 | www | 用户名.github.io | 自动 | 支持www前缀访问 |
TXT记录 | 用于验证域名所有权(如DNS验证) | 300s | 部分服务需此记录 | |
ALIAS记录(高级) | 目标域名/IP | 自动 | 部分DNS支持的别名解析方式 |
注意事项:
- 使用GitHub Pages需添加
CNAME
记录指向用户名.github.io
- 开启CDN服务需根据服务商要求配置(如Cloudflare)
- 修改DNS后需等待全球生效(约1-72小时)
Hexo配置文件修改
编辑_config.yml
文件:
# 基础URL配置 url: https://yourdomain.com # 带https协议 root: / # 多语言子目录需调整 # 强制重定向HTTP到HTTPS plugins: hexo-redirect-from-http[^1]
[^1]: 需安装插件npm i hexo-redirect-from-http
部署到GitHub Pages
创建仓库
- 仓库名格式:
用户名.github.io
- 初始化README文件触发GitHub Pages服务
- 仓库名格式:
配置SSH密钥
ssh-keygen -t rsa -b 4096 # 将公钥添加到GitHub Deploy keys
部署脚本
# 本地生成public目录 hexo clean && hexo generate # 推送到master分支 git add . && git commit -m "update" && git push origin master
HTTPS证书部署(Let’s Encrypt)
安装Certbot
sudo apt install certbot # Debian/Ubuntu系统
获取证书
sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
配置Nginx
server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; # 强制HTTP转HTTPS } server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; # 代理到Hexo静态文件目录 location / { root /path/to/hexo/public; try_files $uri $uri/ =404; } }
常见问题解决方案
现象 | 原因分析 | 解决方案 |
---|---|---|
域名无法访问 | DNS未生效/服务器防火墙阻挡 | 检查DNS记录/开放80/443端口 |
HTTPS显示不安全 | 证书未配置/过期 | 重新申请证书/设置自动续期 |
访问出现404错误 | 文档根目录配置错误 | 检查Nginx root 路径指向public目录 |
FAQs
Q1:为什么绑定域名后访问出现”FORBIDDEN”错误?
A:通常是因为Nginx配置权限问题,需检查root
路径是否指向正确的Hexo生成目录,并确保文件权限设置为755
,执行以下命令修复:
sudo chown -R $USER:$USER /path/to/hexo/public sudo chmod -R 755 /path/to/hexo/public
Q2:如何实现www和不带www域名同时访问?
A:需在Nginx配置中添加重定向规则:
server { listen 80; server_name yourdomain.com; return 301 $scheme://www.$host$request_uri; # 强制跳转到www子域 }
或在Hexo配置中启用url
统一为https://www.yourdomain.com