用云服务器部署 Hexo 博客,Nginx 托管静态页面全流程

用云服务器部署 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,自己的内容完全在自己手里。

相关推荐
Brilliantwxx4 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做4 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
richdata5 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667965 小时前
【无标题】
运维·服务器·网络
一池秋_6 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
上海云盾-小余7 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠8 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件8 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
我命由我123459 小时前
Linux - Linux/POSIX 路径斜杠折叠规则
linux·运维·服务器·android studio·android jetpack·android-studio·android runtime
姚不倒9 小时前
Nginx 反向代理:5 种负载均衡策略与实战
运维·nginx·负载均衡