使用heroku部署nodejs应用
开发环境在ubuntu10.04下。
$ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] $ gem -v 1.3.7 $ node -v v0.4.9 $ npm -v 1.0.15 $ git ....
确保以上软件安装完成。可参考如下文章。
Ubuntu 10.04安装ruby1.9.2和rail3.0.1
准备工作尚未完成,还要到heroku官方注册账户,Sign Up。
下面要安装heroku软件包,推荐使用gem来安装。
$ gem install heroku $ heroku version heroku-gem/2.3.6
如果执行heroku命令的时候,终端报错,找不到该命令,这是因为heroku不在环境变量里,还要执行下面的步骤。
$ gem environment ...... - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1 ...... $ export PATH=/usr/local/lib/ruby/gems/1.9.1:$PATH
准备工作基本完成。下面开始创建nodejs应用。打开ubuntu的终端控制台,执行
$ mkdir node_app $ cd node_app $ gedit web.js
然后将下面的内容拷贝到你所创建的web.js文件里。
// filename web.js
var express = require('express');
var app = express.createServer(express.logger());
app.get('/', function(request, response) {
response.send('Fuck GFW!');
});
var port = process.env.PORT || 3000;
app.listen(port, function(){
console.log("Listening on " + port);
});
主要的程序内容就包括这些。然后还要创建几个文件,主要用来配置。
$ gedit package.json
// filename package.json
{
"name": "node-example",
"version": "0.0.1",
"dependencies": {
"express": "2.2.0"
}
}
package.json文件包含所创建应用的信息。express是基于nodejs开发的web框架,类似于ruby的sinatra。下面执行
$ npm install -d
npm执行的时候,会根据package.json文件下载安装所依赖的模块。执行结束之后会生成node_modules目录,里面就有express模块。
为了是heroku能够识别并且执行我们的应用,还需创建Procfile。
$ gedit Procfile // Procfile web: node web.js
以上完成了应用的基本开发。可以在本地测试一下。
$ node web.js Listening on 1234
如果执行成功,那么就可以将应用提交到heroku去了。在提交之前,必须在本地生成公钥,因为heroku并不 知道谁,在什么地方,要提交到哪里去。
$ heroku keys:add ....
如果第一次运行,heroku提示输入邮箱和密码,并且生成公钥,上传到heroku服务器上。
下面对我们的应用生成git的版本信息。
$ git init $ git add . $ git commit -m 'init'
在heroku服务器上生成我们的应用。
$ heroku create--stack cedar ......
如果不提供应用的名称,heroku会随机生成一个名字。这是可以登录我们的heroku账户,进入My Apps,就会看到应用列表了。
最后一步,将应用推送到heroku服务器上。
$ git push heroku master ...... ......
这样变完成了部署应用到heroku。这时就可以在浏览器中输入heroku提供的网址,访问我们的应用了。
我的nodejs小应用http://clovery.herokuapp.com/
现在还没有评论