用云服务器部署 Hexo 博客,Nginx 托管静态页面全流程
Hexo 是国内使用量最大的静态博客框架之一,生成速度快,主题生态丰富。很多人把 Hexo 部署在 GitHub Pages 上,免费但访问速度在国内不稳定,还时不时被墙。把 Hexo 生成的静态文件托管在自己的服务器上,配上 Nginx 和 HTTPS,访问速度快很多,搜索引擎收录也更友好。
这篇教程介绍从零开始:本地安装 Hexo、写文章、生成静态文件,再推送到服务器,全程自动化部署。
服务器配置建议
Hexo 是纯静态站,Nginx 对资源消耗极低,最入门的配置就够用:
- CPU:1 核
- 内存:1G
- 硬盘:10GB(文章再多也用不了多少空间)
- 带宽:1--3Mbps(静态页面文件小)
我用的是【雨云rainyun-com】的 1 核 1G 入门机,月付费用很低,跑 Hexo 这种轻量站点完全绰绰有余,稳定性也没让我失望过。新用户注册填优惠码 2026off 能领 5 折优惠券,第一个月成本降到最低,正好拿来折腾博客。
本地安装 Hexo
本地需要先装 Node.js(建议 18.x 以上版本):
bash
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
# 安装 Node.js
nvm install 18
nvm use 18
安装 Hexo CLI:
bash
npm install -g hexo-cli
初始化博客:
bash
hexo init my-blog
cd my-blog
npm install
本地预览
bash
hexo server
浏览器访问 http://localhost:4000 可以看到默认主题的博客。
写文章
bash
hexo new "我的第一篇文章"
文章文件在 source/_posts/ 目录下,用 Markdown 格式写内容:
markdown
---
title: 我的第一篇文章
date: 2026-04-25 12:00:00
tags:
- 随笔
- 技术
categories: 生活
---
这里是文章正文......
生成静态文件
bash
hexo generate
静态文件生成在 public/ 目录。
服务器端配置
安装 Nginx 和 Git
bash
sudo apt update
sudo apt install -y nginx git
创建网站目录
bash
sudo mkdir -p /var/www/hexo
sudo chown $USER:$USER /var/www/hexo
配置 Nginx
bash
sudo tee /etc/nginx/sites-available/hexo << 'EOF'
server {
listen 80;
server_name 你的域名.com www.你的域名.com;
root /var/www/hexo;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# 开启 gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
# 静态资源缓存
location ~* \.(css|js|png|jpg|gif|ico|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
EOF
sudo ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
配置 Git 自动部署
在服务器上创建 Git 裸仓库:
bash
mkdir -p ~/repos/hexo.git
cd ~/repos/hexo.git
git init --bare
# 创建 post-receive 钩子,推送时自动部署
cat > hooks/post-receive << 'EOF'
#!/bin/bash
GIT_WORK_TREE=/var/www/hexo git checkout -f main
echo "部署完成: $(date)"
EOF
chmod +x hooks/post-receive
本地配置推送
回到本地博客目录,编辑 _config.yml:
yaml
deploy:
type: git
repo: root@你的服务器IP:~/repos/hexo.git
branch: main
安装 hexo-deployer-git:
bash
npm install hexo-deployer-git --save
一键部署
以后每次写完文章,执行:
bash
hexo clean && hexo generate && hexo deploy
Hexo 会生成静态文件,通过 Git 推送到服务器,触发 post-receive 钩子自动部署到 Nginx 目录。整个过程十几秒完成。
配置 HTTPS
用 Certbot 申请免费 SSL 证书:
bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d 你的域名.com -d www.你的域名.com
按提示输入邮箱,同意协议,Certbot 会自动修改 Nginx 配置并配置证书自动续签。
常用 Hexo 命令速查
bash
hexo new "文章标题" # 新建文章
hexo new page "about" # 新建页面
hexo server # 本地预览(localhost:4000)
hexo generate # 生成静态文件
hexo deploy # 部署到服务器
hexo clean # 清除缓存
Hexo 的部署一旦配好,日常写文章的流程非常顺畅:新建文章、写 Markdown、一条命令发布,几秒钟后博客更新。有域名有 HTTPS,自己的内容完全在自己手里。