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

相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
还是大剑师兰特3 天前
解决nginx错误:http://localhost:7000正常,http://localhost:7000/map 报错404
nginx·大剑师
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog3 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
琥珀色糖3 天前
SimlpeHttp
linux·服务器
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透