当前位置:首页 > 行业动态 > 正文

hexo个人服务器

Hexo个人服务器搭建需先安装Node.js环境,通过npm安装Hexo并创建站点,编写Markdown内容后生成静态文件,再通过FTP/SCP上传至服务器或配置Git自动部署,最后绑定域名并配置

Hexo个人服务器部署全流程解析

本地开发环境准备

(1)Node.js安装与验证
| 操作系统 | 安装命令 | 版本验证 |
|———-|———-|———-|
| Windows | 官网下载安装包 | node -v |
| macOS | brew install node | node -v |
| Linux | sudo apt install nodejs | node -v |

需确保Node.js版本≥14.0,推荐使用LTS版本,通过npm install -g n安装n工具后,可执行sudo n stable获取最新稳定版。

(2)Git基础配置

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

建议启用大文件存储优化:git config --global pack.windowMemory "100m"

(3)Hexo框架初始化

# 全局安装Hexo CLI
npm install -g hexo-cli
# 创建项目目录
hexo init blog
cd blog
# 安装必要依赖
npm install

推荐使用Yarn替代npm:npm install -g yarn,后续执行yarn替代npm install

服务器环境配置

(1)VPS选择标准
| 指标 | 建议配置 | 说明 |
|————–|—————-|————————–|
| CPU | ≥1核 | 支持基本编译需求 |
| 内存 | ≥1GB | 保障Node.js运行 |
| 存储 | ≥20GB | 存放博客文件及日志 |
| 带宽 | ≥5Mbps | 确保图片加载速度 |
| 操作系统 | Ubuntu 20.04+ | 良好的社区支持 |

(2)服务器基础环境搭建

# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装基础工具链
sudo apt install -y curl git wget unzip nginx
# 安装Node.js(推荐NVM管理)
curl -ohttps://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install 16

(3)SSH密钥认证配置

# 生成密钥对(客户端)
ssh-keygen -t rsa -b 4096 -C "your@email.com"
# 部署公钥到服务器
ssh-copy-id root@your_server_ip

建议禁用密码登录:编辑/etc/ssh/sshd_config,设置PasswordAuthentication no

Hexo部署核心步骤

(1)Nginx反向代理配置

# /etc/nginx/sites-available/hexo
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:4000; # Hexo默认端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

创建符号链接:ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/

(2)Hexo项目部署流程

# 本地生成静态文件
hexo clean
hexo g
# 上传至服务器
rsync -avz --delete ./public/ root@your_server_ip:/var/www/html/
# 重启Nginx服务
ssh root@your_server_ip 'systemctl restart nginx'

推荐使用--ignore-existing参数避免重复传输相同文件

域名与SSL配置

(1)DNS解析设置
| 类型 | 名称 | 值 | TTL |
|——|——|——————-|——|
| A | @ | 服务器公网IP | 3600 |
| CNAME| www | yourdomain.com | 3600 |

(2)Let’s Encrypt SSL证书申请

# 安装Certbot
sudo apt install certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

设置自动续期:sudo certbot renew --dry-run测试续订流程

自动化部署方案

(1)PM2进程管理配置

# 安装PM2
sudo npm install -g pm2
# 启动Hexo服务
pm2 start /var/www/html/index.js --instances max --name hexo-blog
# 设置开机自启
pm2 startup install
pm2 save

推荐使用pm2 monit监控运行状态

(2)Git钩子自动部署

# 在Hexo项目根目录创建post-receive钩子
vim ./.git/hooks/post-receive
#!/bin/bash
hexo clean
hexo generate
rsync -avz --delete ./public/ root@your_server_ip:/var/www/html/
ssh root@your_server_ip 'systemctl restart nginx'

赋予执行权限:chmod +x post-receive

关键配置参数对照表

配置文件 关键参数 作用说明
_config.yml permalink: posts/:title/ URL结构规范
Nginx.conf client_max_body_size 20M 限制上传文件大小
PM2 log out_file: ./logs/out.log 进程输出日志路径
Let’s Encrypt renew_before_expiry_days = 30 证书提前续期天数

常见问题解决方案

部署后页面空白问题排查流程

graph TD
    A[检查网络连通性] --> B{ping通服务器?}
    B -Yes --> C[验证Nginx配置]
    B -No --> D[检查防火墙规则]
    C --> E{查看error.log}
    E -404错误 --> F[确认静态文件路径]
    E -502错误 --> G[检查Hexo进程状态]
    G --> H[重启PM2服务]

HTTPS访问异常处理步骤

  1. 检查证书有效期:sudo certbot certificates
  2. 验证自动续期:sudo certbot renew --dry-run
  3. 清除浏览器缓存:Ctrl+F5强制刷新
  4. 检查HSTS策略:include <hsts>配置段是否存在
  5. 修复混合内容:sudo find /var/www/html/ -type f -exec sed -i 's/http:///https:///g' {} ;

FAQs

Q1:为什么使用个人服务器而不是GitHub Pages?
A1:个人服务器提供更高自由度:①可自定义Nginx配置实现GZIP压缩、缓存控制等优化;②支持MySQL/Redis等扩展功能;③不受GitHub速率限制影响;④可部署私有插件,但需自行维护服务器安全,适合技术爱好者。

Q2:如何实现多作者协作更新?
A2:推荐两种方案:①建立Git分支工作流,通过git worktree管理不同作者分支;②配置SSH免密登录后,使用rsync同步特定作者目录,示例命令:rsync -avz --exclude '.git' author1/ root@server:/var/www/author1/

0