Just relax, take it easy..

0%

在 vps 上部署你的静态博客 (网站)

昨晚博客搬到香港的 vps 上了. 在这篇文章把简单的几个步骤, 总结分享一下(本文主要以 Octopress 为例子, 但流程其实都是共通的).

背景

这个 博客 原先是部署在 Github Page 服务上的, 优缺点很明显:

优点:

  1. 免费!!!

缺点:

  1. 大陆和美利坚毕竟跨着一个太平洋, 延迟还是有些高的.
  2. 无法配置证书(之前用的 cloudflare 解决方案, 但必须要用它家的 cdn, 感觉不能掌控的因素太多了).
  3. 其实最重要的一点是, 如果博客放在 github 的 page 服务上, 是 无法被百度收录 的.

第一步 购买 VPS

我用的是一个香港的 vps 供应商, 比较小众, 选择它只是因为被他们的主页萌到了 (๑•ᴗ•๑):
http://www.hostker.com/
可以点我的 推广链接 获取优惠:
通过邀请链接注册的新用户完成手机绑定可以获得 0.5K 贝壳(相当于 5 元.)

选择 vps 的另一个原因:

  1. 可以把自己 别的网站, e.g. unsw.co 也放到这个 vps 上.
  2. 选的香港 vps, 肯定还可以做别的事情.

所以在节省别的开销的情况下, 这主机的钱💰个人觉得还是值得的.

第二步 同步网站内容

因为是静态网站, 所以只要把生成的静态内容, 放到 vps 上供访问就行了.
Octopress 提供了原生的同步方法: 只需将 rake deploy 的模式从默认的 push 改为 Rsync, 再允许 rake deploy 就会将代码同步到远程的服务器上, 具体的配置如下:

1
2
3
4
5
6
7
8
## Rsync Deploy config
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
ssh_user = "username@vps 的 IP 地址 "
ssh_port = "22"
document_root = "~/zblog/"
rsync_delete = false
rsync_args = "" # Any extra arguments to pass to rsync
deploy_default = "rsync"

第三步 配置 Nginx

将访问的域名代理 --> vps 上同步的文件夹.
我的 nginx 配置供参考:

  1. www.changchen.me 301 --> changchen.me
  2. 将 changchen.me --> ~/zblog/
1
2
3
4
5
6
7
8
9
10
11
server {
server_name www.changchen.me;
rewrite ^/(.*)$ https://changchen.me/$1 redirect;
}

server {
listen 80;
root ~/zblog/;
index index.html index.htm;
server_name changchen.me;
}

第四部 配置 DNS

我用的是 Dnspod, 只需新建两个 A 记录, 将 changchen.mewww.changchen.me都指向你的 VPS 的 IP 地址, 然后 nginx 会根据上边的配置去反向代理.

第五步 配置证书

DNS 生效需要一会时间, 刚好可以等待期间为你的博客加上免费的 SSL 证书.
我用的是Let's Encrypt, 真的是无脑一键配置.

总结

你的博客就顺利搭建起来了🎉
changchen.me --> DNS --> VPS IP --> 301 --> blog dir.

相比以前跨越半个地球去访问网站, 速度刷刷刷的上去了~