如何使用 Hexo + Nginx 搭建个人博客

如何使用 Hexo + Nginx 搭建个人博客

在这篇文章中,我将详细介绍如何使用 Hexo 和 Nginx 搭建一个可以在 80 端口访问的个人博客网站。

为什么选择 Hexo?

Hexo 是一个快速、简洁且高效的博客框架,具有以下优点:

  1. 极速生成 - 基于 Node.js,秒级生成静态文件
  2. Markdown 支持 - 使用 Markdown 编写文章
  3. 无需数据库 - 纯静态文件,部署简单
  4. 主题丰富 - 大量精美主题可选
  5. 免费开源 - 完全免费,社区活跃

环境要求

  • Node.js 12.0 或更高版本
  • npm 包管理器
  • Nginx Web 服务器
  • Linux 服务器(本教程使用 Ubuntu)

第一步:安装 Node.js 和 npm

检查是否已安装:

1
2
node --version
npm --version

如果未安装,可以使用以下命令安装:

1
2
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

第二步:安装 Hexo CLI

使用 npm 全局安装 Hexo 命令行工具:

1
npm install -g hexo-cli

安装完成后,验证安装:

1
hexo -v

第三步:创建博客目录

选择一个目录来存放你的博客文件:

1
2
mkdir -p /root/.openclaw/workspace/hexo-blog
cd /root/.openclaw/workspace/hexo-blog

第四步:初始化 Hexo 博客

在博客目录中初始化 Hexo:

1
hexo init .

这个命令会:

  • 克隆 Hexo 博客模板
  • 安装所有依赖
  • 创建必要的目录结构

初始化完成后,目录结构如下:

1
2
3
4
5
6
7
8
9
hexo-blog/
├── source/ # 源文件目录
│ ├── _posts/ # 文章目录
│ └── _data/ # 数据文件
├── themes/ # 主题目录
├── scaffolds/ # 文章模板
├── _config.yml # 站点配置文件
├── package.json # 项目依赖
└── ...

第五步:安装 Nginx

1
2
sudo apt update
sudo apt install -y nginx

安装完成后,启动 Nginx:

1
2
sudo systemctl start nginx
sudo systemctl enable nginx

第六步:生成静态文件

在博客目录中生成静态文件:

1
2
cd /root/.openclaw/workspace/hexo-blog
hexo generate

或使用简写:

1
hexo g

生成的文件会保存在 public/ 目录中。

第七步:配置 Nginx

创建 Nginx 配置文件:

1
sudo nano /etc/nginx/sites-available/hexo-blog

添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen 80;
listen [::]:80;

server_name _;

root /var/www/hexo-blog;
index index.html;

location / {
try_files $uri $uri/ =404;
}

# 缓存静态文件
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}

# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}

第八步:部署到 Nginx

复制生成的文件到 Nginx 目录:

1
2
sudo cp -r public/* /var/www/hexo-blog/
sudo chown -R www-data:www-data /var/www/hexo-blog/

启用站点配置:

1
2
sudo ln -sf /etc/nginx/sites-available/hexo-blog /etc/nginx/sites-enabled/hexo-blog
sudo rm -f /etc/nginx/sites-enabled/default

测试配置并重载 Nginx:

1
2
sudo nginx -t
sudo systemctl reload nginx

第九步:验证访问

打开浏览器访问你的服务器 IP:

1
http://YOUR_SERVER_IP/

如果看到博客首页,说明搭建成功!

创建第一篇文章

方法一:使用命令创建

1
hexo new post "My First Post"

文章会创建在 source/_posts/my-first-post.md

方法二:直接创建文件

source/_posts/ 目录中创建 .md 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
title: 我的第一篇博客
date: 2026-03-02 13:00:00
tags:
- Welcome
categories:
- Life
---

# 你好,世界!

这是我的第一篇博客文章。

## 关于这个博客

这个博客使用 Hexo 和 Nginx 搭建...

发布文章

编辑完文章后,重新生成并发布:

1
2
3
4
5
6
# 生成静态文件
hexo generate

# 复制到 Nginx 目录
sudo cp -r public/* /var/www/hexo-blog/
sudo chown -R www-data:www-data /var/www/hexo-blog/

简化管理脚本

为了方便管理,我创建了一个 blog.sh 脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

HEXO_DIR="/root/.openclaw/workspace/hexo-blog"
PUBLIC_DIR="/var/www/hexo-blog"

case "$1" in
new)
cd $HEXO_DIR && hexo new post "$2"
;;
deploy|d)
cd $HEXO_DIR && hexo generate
sudo cp -r $HEXO_DIR/public/* $PUBLIC_DIR/
sudo chown -R www-data:www-data $PUBLIC_DIR
echo "Deployed!"
;;
clean)
cd $HEXO_DIR && hexo clean
;;
*)
echo "Usage: $0 {new|deploy|clean}"
;;
esac

使用方法:

1
2
3
4
5
6
7
8
# 创建新文章
./blog.sh new "文章标题"

# 发布到网站
./blog.sh deploy

# 清理缓存
./blog.sh clean

更换主题

Hexo 有很多漂亮的主题可选。以 Next 主题为例:

1
2
3
4
5
# 克隆主题
git clone https://github.com/next-theme/hexo-theme-next themes/next

# 修改配置文件
nano _config.yml

_config.yml 中修改:

1
theme: next

重新生成即可:

1
2
hexo generate
sudo cp -r public/* /var/www/hexo-blog/

常用命令总结

命令 说明
hexo new post "标题" 创建新文章
hexo generatehexo g 生成静态文件
hexo serverhexo s 本地预览(端口 4000)
hexo clean 清理缓存
hexo deployhexo d 部署(需配置)

配置文件说明

_config.yml(站点配置)

主要配置项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 站点信息
title: 我的博客
subtitle: 分享技术和生活
description: 这是我的个人博客
author: 你的名字
language: zh-CN

# URL 设置
url: http://yourdomain.com
root: /
permalink: :year/:month/:day/:title/

# 文章设置
posts_dir: source/_posts
new_post_name: :title.md

# 主题
theme: landscape

source/_posts/(文章目录)

所有文章都以 Markdown 格式存储在这里。

常见问题

1. 端口 80 无法访问

检查 Nginx 状态:

1
sudo systemctl status nginx

检查防火墙:

1
2
sudo ufw status
sudo ufw allow 80/tcp

2. 文章不显示

重新生成:

1
2
hexo clean
hexo generate

检查文章格式:
确保文章开头有正确的 Front-matter:

1
2
3
4
---
title: 文章标题
date: 2026-03-02 13:00:00
---

3. 图片无法显示

将图片放在 source/images/ 目录,然后在文章中使用:

1
![图片描述](/images/photo.jpg)

进阶配置

启用 Gzip 压缩

在 Nginx 配置中添加:

1
2
3
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 1000;

配置 HTTPS

使用 Let’s Encrypt 免费 SSL 证书:

1
2
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

自动部署

配置 Git hooks 或使用 CI/CD 工具实现自动部署。

总结

使用 Hexo + Nginx 搭建博客的优势:

快速 - 静态文件,加载速度快
简单 - 无需数据库,维护成本低
便宜 - 任何便宜的 VPS 都能运行
安全 - 静态网站,攻击面小
灵活 - 主题和插件丰富

整个搭建过程大约需要 15-30 分钟,非常适合想要搭建个人博客的朋友。


Happy Blogging! 🎉

如果你觉得这篇文章有帮助,欢迎分享给更多人!