楔子

前几天买了一个搬瓦工(Bandwagon)的VPS,主要用于Shadowsocks代理,但用了几天发现我根本用不完,好在当时买的是内存相对大一点的,有128 MB,再跑一个静态服务器应该没有问题,于是手痒痒,想用来搞个新的Blog。神往Hexo很久了,想折腾一个。不出意外,您现在看的这个页面就托管在搬瓦工上面的Hexo站,这篇文章讲的是我搭建服务器的过程和Hexo的配置,也是第一篇用Hexo发布的Blog。

2015-03-04 Update:

因为有人留言说搞不出来,我自己看了下,确实写的不清楚。当时是第一次弄,自己也不是很懂,今天我修改一下。

安装

因为我用的是Debian系统,安装是非常容易的,一条命令搞定:

1
apt-get install nginx

注意:如不注明,命令都是在服务器上运行的,你可以用搬瓦工的管理界面运行它们,如下图。

控制界面里运行命令的界面

先不启动nginx,我们来搞定配置。

配置

配置找了好些资料,要么是太老,要么是太复杂,我感觉这个是不错的Basic Nginx Configuration

其实Nginx的配置可以分为两部分,一部分是Nginx自己的配置,我只改了一小部分,大部分是默认的,这个可改可不改,再一个就是写网站的配置文件。

等等,你问我怎么编辑这些文件啊。我用的Emacs的Tramp连接到服务器改的。如果你不用Emacs这个用起来确实不方便,但搬瓦工为你们提供了编辑文件的界面啦,输入路径,在想编辑的文件上摁edit就可以弹出编辑窗口啦,记得保存哦。

编辑文件的界面

Nginx自身的配置(可选)

首先改一下/etc/nginx/nginx.conf,因为VPS是单CPU的,所以里面的worker_processes改成1

写网站配置文件

先说说网站配置文件的加载方式,这可能是那位朋友看不懂的原因。Nginx默认的配置是这样的,/etc/nginx/sites-available/目录里放的是网站的配置文件,用一个软链接(ln -s)链接到/etc/nginx/sites-enabled/里。这样的好处是,我可以删除这个目录里的网站而不影响配置文件本身。

写网站配置文件也好复杂的,我也遇到了一些坑,具体不说了,讲最简单的,在默认配置的基础上改,首先:

1
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/hexo

按照网站在服务器里的位置,在我这里设成/www/hexo,主要还是改路径,也就root /www/hexo;,去掉注释剩下的其实就这些:

1
2
3
4
5
6
7
8
9
10
server {
root /www/hexo; # 这里是你网站的路径 路径下包含index.html等一系列文件
index index.html index.htm;

server_name www.chriszheng.science chriszheng.science *.chriszheng.science; # 如果有域名就像我这样写 当然你还得配置域名解析

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

删除掉sites-enabled里面的default,添加上我们刚刚改的配置文件:

1
2
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/

启动

好像不需要 安装Nginx后重启一下就启动了 手动启动、重新载入配置、重新启动分别是下面三条命令

1
2
3
/etc/init.d/nginx start
/etc/init.d/nginx reload
/etc/init.d/nginx restart

用Rsync方法部署(Deploy)Hexo

首先,一个坑是,服务器必须安装Rsync。不用配置,但必须安装,还是下面一条命令安装,零配置好爽啊。

1
apt-get install rsync

配置文件的改动可以参考官方文档,我的配置里面部署部分是这个样子的:

1
2
3
4
5
6
7
8
9
deploy:
type: rsync
host: 104.224.170.13
user: root
root: /www/hexo
port: 29876
delete: true
verbose: true
ignore_errors: false

说实话我也不大懂,但这里填上SSH的端口是可以的,不管怎么样,成功了。

结语

然后?没有然后了。访问http://104.224.170.13/可以看到已经可以正常访问了。我还有个域名也绑定了,所以http://chriszheng.science/也是可以的。