Hexo 博客部署到低配置 VPS 完整指南(稳定生产版)

本文记录如何在低配置 VPS(512MB~1GB 内存)上部署 Hexo 静态博客,并使用 Nginx 提供稳定访问服务。

该版本为已验证可用的生产级方案,避免常见坑(/root 权限、default_server 冲突、多站点冲突)。


一、整体架构

1
2
3
4
5
6
7
8
9
10
11
本地 Hexo 生成

public/

上传 VPS

/var/www/hexo

Nginx

浏览器访问

👉 核心原则:

VPS 只做静态文件服务,不运行 Hexo


二、VPS 安装 Nginx

1. 更新系统

1
apt update

2. 安装 Nginx

1
apt install nginx -y

3. 启动并设置开机自启

1
2
systemctl enable nginx
systemctl start nginx

三、Hexo 本地生成

在本地 Hexo 目录执行:

1
2
hexo clean
hexo generate

生成文件在:

1
public/

四、上传到 VPS(推荐标准路径)

✔ 推荐目录

1
/var/www/hexo

创建目录

1
mkdir -p /var/www/hexo

上传方式(任选)

方法1:scp

1
scp -r public/* root@你的IP:/var/www/hexo/

方法2:Xftp / WinSCP

上传 public 内所有文件到:

1
/var/www/hexo

五、设置文件权限(关键步骤)

1
2
chown -R www-data:www-data /var/www/hexo
chmod -R 755 /var/www/hexo

👉 作用:允许 Nginx 读取文件


六、配置 Nginx(核心)

编辑配置:

1
nano /etc/nginx/conf.d/hexo.conf

填入以下内容:

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

server_name _;

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

location / {
try_files $uri $uri/ /index.html;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?)$ {
expires 30d;
access_log off;
}

location ~ /\. {
deny all;
}
}

七、删除冲突配置(非常重要)

删除默认站点

1
2
rm -f /etc/nginx/sites-enabled/default
rm -f /etc/nginx/conf.d/default.conf

八、检查并重启 Nginx

检查配置

1
nginx -t

重启服务

1
systemctl restart nginx

九、访问网站

浏览器访问:

1
http://你的VPS IP

成功显示 Hexo 首页。


十、后续更新流程

每次更新博客:

本地执行

1
2
hexo clean
hexo generate

上传覆盖

1
scp -r public/* root@你的IP:/var/www/hexo/

十一、常见问题总结

❌ 1. Welcome to nginx

原因:默认站点未删除

解决:

1
rm -f /etc/nginx/sites-enabled/default

❌ 2. 500 Internal Server Error

原因:权限问题(/root 目录不可访问)

解决:

1
chown -R www-data:www-data /var/www/hexo

❌ 3. 页面空白

原因:public 未上传完整

解决:重新上传 Hexo public


十二、最佳实践总结

✔ 使用 /var/www/hexo(不要用 /root)
✔ 只保留一个 nginx server block
✔ default_server 只允许一个
✔ Nginx 不运行任何动态服务


十三、升级建议(可选)

后续可升级:

  • HTTPS(Let’s Encrypt)
  • Cloudflare CDN 加速
  • Git 自动部署 Hexo
  • Brotli / gzip 优化
  • 缓存策略优化

完成

该方案已在低配置 VPS 上验证稳定运行。