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

相关推荐
慧一居士12 小时前
Linux如何设置固定的静态ip
运维
国服第二切图仔13 小时前
13其他工具 - Skill/LSP/Sleep等
linux·运维·里氏替换原则
就不掉头发14 小时前
计算机的虚拟内存
linux·服务器·windows
暴力求解14 小时前
Linux ---线程控制(二)
linux·运维·服务器·操作系统
smartvxworks14 小时前
Linux 实时内核(Linux Real-Time Kernel)详解:原理、实践与优化
java·linux·服务器
梦痕长情14 小时前
等保三级三权账户
linux·运维·服务器
wuqingshun31415915 小时前
说说TCP的3次握手?为什么需要三次握手?
服务器·网络协议·tcp/ip
CHANG_THE_WORLD15 小时前
1.简单的服务端和客户端(仅作为内容补充)
linux·服务器·网络
jiecy15 小时前
为Linux系统双网卡配置静态路由
linux·运维
CodexDave16 小时前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes