for friends

hexo 是最近比较流行的一种快速、简洁高效的纯静态博客。回顾自己的博客历程,一开始使用最流行的 Wordpress。后来嫌太庞大,用起来麻烦。后来换了稍微小清新一点的 typecho。不过也就是程序本身小清新一点,但思路依然是老一套。让我讨厌的原因是依赖 MySQL,在我们这种小 vps 机器上,太吃资源了。而且迁移备份部署都比较费事。

hexo 这种纯静态博客好处就是简单。写博客就是写 markdown 文件,备份迁移把这些 markdown 文件备份好就行了。我是直接把博客项目直接扔在了 Dropbox 的目录里。

网上很多教程都是教如何在 Github 或者 Gitcafe 这类 git 托管网站上部署的。教程太多,这里就不赘述。这里介绍一下如何部署在自己的 vps 上。其实更加简单。

安装

首先在本地自己的电脑上装个 hexo,教程见官网,这个就没啥好说的。

建站配置

同样如官网这里这里

本地生成

使用hexo new [layout] <title>创建新的文章之后,就可以用你喜欢的任何编辑器去修改生成的文件了。

写好之后,使用hexo generate命令,简写是hexo g,生成 html。完成之后,在当前目录下会有一个public文件夹,这个就是我们整个博客的内容了。部署用它就行了。

然后就要把这个public文件夹上传到你的 vps 上。具体是用 rsync 还是 WinSCP 等工具,这就各异了。

部署

public目录上传到 vps 上来。我们假设其目录是/home/xxx/public

先装个 Nginx。

1
2
sudo apt-get update
sudo apt-get install nginx

创建 Nginx 配置文件sudo vim /etc/nginx/conf.d/blog.conf。最后的blog.conf文件名随意。

写入我们的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 80;
server_name example.com; # 自己的域名

root /home/xxx/public; # 刚才说的路径
access_log /var/log/nginx/blog_access.log;
error_log /var/log/nginx/blog_error.log;

# 这里是针对静态资源文件做个缓存
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 1d;
add_header Pragma public;
add_header Cache-Control "public";
}

# 这里就是把请求转给我们的静态文件了
location / {
try_files $uri $uri/ /index.html;
}
}

保存之后,重新加载 Nginx 配置sudo nginx -s reload

基本的配置就到此 OK 了。可以看到效果了。

以后写新的文章,在本地写完之后,用hexo g生成一下,然后把public目录上传上来就可以了。