想来想去,还是决定把博客托管到服务器上,放在 Mac mini 上毕竟不是长久之计。开整!

服务器安装必要环境

  • 安装npm
1
2
3
4
5
6
7
# 添加 Node.js 官方源
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 安装 Node.js 和 npm
sudo apt install -y nodejs
# 确认安装成功
node -v
npm -v
  • 安装Hexo CLI
1
2
3
sudo npm install -g hexo-cli
# 确认安装成功
hexo -v
  • 安装项目依赖
1
2
3
4
# 进入博客项目目录
cd /home/txm/myblog/txm_blog
# 会根据 package.json 自动安装所有依赖
npm install

生成静态网页并测试本地部署

1
2
3
4
5
6
# 生成 public/ 文件夹里的静态网站内容
hexo clean; hexo g
# 部署运行博客,注意这里输入实例端口
hexo s -p 50005
# 查看浏览器验证,这里输入物理机端口
http://10.107.0.113:20029

把图床的 Nginx 站点也放到服务器上

  • 在服务器上安装nginx
1
sudo apt install -y nginx
  • 配置 nginx 虚拟主机
1
2
# 编辑配置文件
sudo vi /etc/nginx/sites-available/img.tianlejin.top

内容填:

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 6006; # 实例端口,本机: 20012
server_name img.tianlejin.top;

root /home/txm/myblog/blog-imgs;
index index.html;

location / {
autoindex on; # 允许目录浏览
try_files $uri $uri/ =404;
}
}
  • 让 nginx 加载这个站点
1
2
3
4
5
6
# 建立软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/img.tianlejin.top /etc/nginx/sites-enabled/
# 启动 nginx
sudo nginx
# 重启 nginx
sudo nginx -s reload

配置图床的 Cloudflare Tunnel 内网穿透

  • 安装 cloudflared
1
2
3
4
5
6
# 下载
wget https://github.com/cloudflare/cloudflared/releases/download/2025.4.0/cloudflared-linux-amd64.deb
# 安装
sudo dpkg -i cloudflared.deb
# 确认安装成功
cloudflared --version
  • 去 Cloudflare 控制台配置 Tunnel

进入 https://one.dash.cloudflare.com -> 网络 -> Tunnels -> Debian【64-bit】 -> 复制【sudo cloudflared service install eyJhIj…】

  • 服务器配置 cloudflared 服务
1
2
# 执行刚刚复制的代码
sudo cloudflared service install eyJhIj...
  • 去 Cloudflare 控制台配置 Tunnel:更改主机名 -> 服务 -> URL【localhost:6006】 -> 保存主机名

  • 进入 https://img.tianlejin.top ,检查是否配置成功

脱离 Github Pages,直接把博客跑在自己的服务器上

  • 给博客主页配置 nginx
1
2
# 编辑配置文件
sudo vi /etc/nginx/sites-available/www.tianlejin.top

内容填:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 50005; # 实例端口,本机: 20029
server_name www.tianlejin.top;

# 配置网站的根目录
root /home/txm/myblog/txm_blog/public;
index index.html;

location / {
autoindex on; # 允许目录浏览
# 先找 $uri; 找不到,再找 $uri/; 还找不到,再找 $uri.html; 还不行,404
try_files $uri $uri/ $uri.html =404;
}
}
  • 让 nginx 加载这个站点

nginx 只会加载 /etc/nginx/sites-enabled/ 下面的文件

1
2
3
4
# 建立软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/www.tianlejin.top /etc/nginx/sites-enabled/
# 重启 nginx
sudo nginx -s reload

再次配置 Cloudflare Tunnel 内网穿透

记得停掉原来 Mac mini 上的服务

1
2
3
4
5
# 查看现有服务列表
brew services list
# 停止服务
brew services stop nginx
brew services stop cloudflared

20250731更新

即日起个人博客迁移到瑞金个人工作站,踩坑记录如下:

  • 配置好Nginx后,会无端出现404错误。排查后发现是因为/home/tianlejin目录没有可执行权限,需要chmod o+x /home/tianlejin
  • 在原来的cloudflare tunnel继续添加公共主机会 502 Bad Gateway,因此需要在cloudflare新建一个tunnel,再重新添加公共主机
  • 以后写好博客的更新步骤
    1
    cd /home/tianlejin/myblog/txm_blog; hexo clean && hexo g