之前使用Duke写的博客框架。在我重新购买服务器后就放弃了,说到底还是想要傻瓜试的搭建博客。

  1. 更新源、下载git, nodejs, npm,certbort, python3-certbort-nginx
1
2
sudo apt upgrade;sudo apt update
sudo apt install git nodejs npm certbot python3-certbot-nginx
  1. npm安装hexo-cli
1
sudo npm install -g hexo-cli
  1. 新建文件夹,初始化hexo
1
2
3
mkdir -p ~/hexoblog
cd ~/hexoblog
hexo init

  1. 修改hexo配置文件(_config.yml),使器生成的文件存放于/var/www/blog,方便后续nignx代理

  1. 修改配置文件(_config.yml),让每一篇博客都有自己对应的文件夹,方便图库存储,索引

  1. 下载butterfly主题,安装依赖
1
2
3
cd ~/blog
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
npm install hexo-renderer-pug --save
  1. 修改配置文件指定新的主题

  1. 编写nginx配置 (/etc/nginx/sites-available/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
25
26
27
28
29
30
31
32
33
34
35
36
server {
server_name blog.domain.name;

# 配置访问日志和错误日志
access_log /var/log/nginx/blog_access.log;
error_log /var/log/nginx/blog_error.log;

# 指向 Hexo 生成的 public 目录
root /var/www/blog;
index index.html;

# 配置文件匹配
location / {
try_files $uri $uri/ /index.html;
}

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

# 启用 Gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
gzip_vary on;

# 缓存静态资源
location ~* \.(jpg|jpeg|png|gif|ico|css|js){
expires 30d;
add_header Cache-Control "public, no-transform";
}


listen 80; # managed by Certbot
}
  1. 使能blog nginx配置
1
sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enable
  1. cloudflare配置DNS域名解析

  1. 申请证书
1
sudo certbot --nginx -d blog.domain.name