第8章 部署 - nswbmw/N-drifter GitHub Wiki

在这之前,我们一直在本地做的测试,现在是时候将我们的漂流瓶应用部署到云端,让所有人都可以使用了。

下面我们使用 Heroku + MongoLab + Redis4You 来部署我们的漂流瓶应用。

使用 MongoLab

MongoLab 是除了 MongoHQ 外另一个流行的 MongoDB 云数据库提供商。MongoLab 的免费套餐提供了 500MB 的存储空间,使用 MongoLab 和 使用 MongoHQ一样简单,所以这里只简要说明下如何使用。

注册

https://mongolab.com/signup/

创建一个数据库

注册成功后,此时进入到自己的控制面板页,点击 Create new 创建一个数据库。在 Plan 选项选择 Development(single-node)Sandbox 免费套餐。在 Darebase name 除填写数据库的名字,点击 Create new MongoDB deployment 完成创建。

创建成功后跳转到了控制面板页,点击刚才创建的数据库进入该数据库配置页面。我们需要先为数据库创建一个拥有读写权限的用户,点击 Click here 添加一个用户。

打开 mongodb.js ,将:

mongoose.connect('mongodb://localhost/drifter', {server: {poolSize: 10}});

修改为:

mongoose.connect('your_mongolab_url', {server: {poolSize: 10}});

注意:将 <dbuser><dbpassword> 分别替换为刚才为数据库创建的用户名和密码。

使用 Redis4You

redis4you 是一家 Redis 云服务提供商,提供多个档次的 Redis 实例供选择,所有类型的服务包括免费的 5M 试用版,都提供诸如多 DB,持久化等功能。这里我们仅供测试使用。

注册

http://redis4you.com/login_new.php

创建一个数据库

验证邮箱完成注册。登录 Redis4You,点击右上角的 My Redis Instanses 进入 Redis 管理页面,点击 Provision new instance 创建一个新的数据库。点击 5MB 的免费套餐右边的 Select this instance 完成创建。

此时跳转到 Redis 管理页面,点击 Information 查看数据库详情。我们只会用到 HostPortAuth 这三项,其中 Auth 为随机生成的访问数据库的凭证。

注意:一定要点击左上角的 start 启动数据库。

打开 redis.js ,将:

var client = redis.createClient();

修改为:

var client = redis.createClient(Port, Host, {auth_pass: Auth});

注意:将 HostPortAuth 分别替换为给定的值。

部署到 Heroku

上一章介绍过如何使用 Heroku ,所以这里不再赘述。

需要注意两点:

  1. 添加 Procfile 文件
  2. app.listen(3000); 修改为 app.listen(process.env.PORT);

部署成功后,我们 POST 一些数据,然后打开主页带上参数模拟捡瓶子,如图所示:

至此,我们的漂流瓶服务器已成功部署并启动了。

⚠️ **GitHub.com Fallback** ⚠️