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

相关推荐
handler011 小时前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习
hanyi_qwe1 小时前
Mysql 与 Nginx 双机高可用
数据库·mysql·nginx
F_D_Z1 小时前
【解决办法】Claude报错Unable to connect to Anthropic services无法连接Anthropic
linux·服务器·claude·anthropic
xjxijd1 小时前
无风扇 AI 服务器成主流:英伟达 NVL72 系统引领静音算力革命
大数据·服务器·人工智能
龙智DevSecOps解决方案1 小时前
深度:Perforce P4 MCP 服务器开源解析——当版本控制遇见 AI Agent
运维·服务器·人工智能
小杰帅气1 小时前
负载均衡式的在线OJ
运维·负载均衡
蜡笔婧萱2 小时前
Linux--RHCE关于at和crond的第一次应用
linux·运维·服务器
VBsemi-专注于MOSFET研发定制2 小时前
高端LED封装自动化产线功率MOSFET选型方案——精密、高效与可靠驱动系统设计指南
运维·单片机·自动化
Agent手记2 小时前
生产节拍混乱,在制品积压严重该怎么破解?——2026制造业柔性生产与Agent自动化实战指南
运维·人工智能·ai·自动化