博客迁移到ECS

  1. 为什么迁移到ECS

    作为国内模仿AWS做得最好的阿里云,我是一直很满意的。其ECS在以前的项目中也有用到,自己的个人博客还可以使用ACE,我也写过相关部署文章。但一个月前,我收到了ACE下线的邮件。官方给出的建议是迁移到ECS,但ECS的月花费大约为40RMB。思前顾后做了两手准备:1. 抢购ECS学生机;2. 迁移到百度云或者腾讯云。就在这周,师妹盟盟(好人一生平安)帮我抢到了每月10RMB的学生机。Ghost运行大概占用220MB不到的内存,而cpu的占用更是少得可怜,每个学生机采用1核1G的配置,已经足够博客使用(15GB的流量应该也是够的)。这就是我为什么迁移到ECS的原因。

  2. 为什么要用Nginx

    流程按照这篇文章的流程安装node.js、mysql、nginx。

    node ghost将使用nginx获得来自80端口的请求。node本身就是server,为什么还需要使用nginx来转发呢?单应用情况下,反向代理用不着。而静态资源我使用七牛CDN,也无需nginx。但是思考一下如果有多个应用需要通过http 80端口转发的话,nginx的作用就出来了。所以我在服务器端使用nginx的考虑是为了以后的扩展性着想。

    与原文有所不同的地方有如下几点:

    1. 配置完nginx后,需要删除默认的配置文件 'rm /etc/nginx/sites-enabled/default' 来自vpsee
    2. 使用pm2来来守护进程,这里纯粹是使用习惯。
    3. 'npm install --production' 命令目前在ECS环境下也能完成依赖的下载。
    4. 最后通过添加一个用户,并限制这个用户只能在代码目录下工作。 'adduser --shell /bin/bash --gecos 'Ghost application' ghost' ,并修改代码目录的所有权。使用该用户在代码目录下运行 'NODE_ENV=production pm2 start index.js --name blog'。

这样,一个不算崭新但又折腾了一边的博客就搭建好了。