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

相关推荐
鼎讯信通2 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..2 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
跨境数据猎手3 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA4 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter6254 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
会Tk矩阵群控的小木4 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
佛山个人技术开发4 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode
The Sheep 20235 小时前
Vue复习
linux·服务器·数据库
OpsEye6 小时前
系统负载高一定是CPU问题吗?
运维·cpu·it
源图客6 小时前
Minio配置HTTPS服务
服务器·网络协议·https