目录

一 .为了方便文件传输 需要安装两个软件

内置文本编辑器

可选地存储会话信息

二 .linux实例中安装nodeJs环境

三 .拷贝源代码到服务器

下载并安装WinSCP器具

开启测试程序

forever 常用命令

资料改动监听并自动重启

显示所有运行的服务

重启操作

后记


首先需要采用ssh或者putty登陆AWS ec2的linux实例(在Windows中使用putty连接linux实例参

一 .为了方便文件传输 需要安装两个软件

1. winscp WinSCP是一个Windows环境下启用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要特性就是在本地与远程计算机间安全的复制文件。

支持基于SSH-1、SSH-2的SFTP和SCP协议

支持批处理脚本和命令行方式

多种半自动、自动的目录同步方式

内置文本编辑器

帮助SSH密码、键盘交互、公钥和Kerberos(GSS) 验证

通过与Pageant(PuTTY Agent)集成支持各种类型公钥验证

提供Windows Explorer与Norton Commander界面

可选地存储会话信息

可将设置存在配置文件中而非注册表中,适合在移动介质上操作

2.Xshell 是一个强大的安全终端模拟软件,它支撑SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作

二 .linux实例中安装nodeJs环境

在控制台输入nodejs指令下载源代码到服务器本地。
在控制台输入"tar -zvxf node-v5.3.0.tar.gz"解压缩源代码。
在控制台输入"cd node-v5.3.0/ && ./configure && make"转到源代码根目录、配置编译选项并开始编译NodeJS源代码(可能需要先安装好编译工具如gcc、g++、make,ubuntu可以运用命令"sudo apt-get install build-essential"安装好C/C++编译环境)。
在控制台输入"sudo make install"安装编译好的NodeJS工具,输入"node -v"以测试是否安装成功,成功则会显示当前的版本(本例中应为v5.3.0)


三 .拷贝源代码到服务器


本例中在Windows使用WinSCP来拷贝文件,接下来介绍WinSCP的配备。 配置WinSCP过程如下:

下载并安装WinSCP工具

打开WinSCP并点击新建站点。
在文件协议选项中选择"SCP"。
填写主机名(能够为实例的公共DNS或者公共IP),端口使用默认的22。
填写用户名为ubuntu(其他linux实例为ec2-user)。
打开"高级",在SSH->验证->密钥记录中选择服务器.ppk密钥文件,点击确定做完设置。
终于点击登录即可连接到服务器,支持拷贝本地资料到远程服务器。
按照上述步骤执行配置过程成功后,把本地的源代码拷贝至服务器,本例中工程目录名为"Hello",包含"hello.js"以及"package.json"两个文件。

hello.js

package.json

开启测试程序


在服务器控制台下转到源代码目录执行"npm start"即可开始执行程序(如果代码还依赖其他的NodeJS模块,需要先执行"npm intsall"来安装依赖的模块)。
在浏览器中输入实例的公共DNS或者公共IP加上端口号访问测试程序,即可获得"Hello World!"响应。
常连接

为了保持服务器一直在线 使用forever

sudo npm install -g forever;
sudo forever start bin/www
sudo forever stop bin/www

forever 常用命令


// 1. 简便的启动
forever start app.js

// 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
forever start -l forever.log app.js

// 3. 指定app.js中的日志信息和错误日志输出档案,
// -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log app.js

// 4. 追加日志,forever默认是不能覆盖上次的启动日志,
// 所以如果第二次启动不加-a,则会不让运行
forever start -l forever.log -a app.js

// 5. 监听当前文件夹下的所有文件改动
forever start -w app.js

文件改动监听并自动重启

// 1. 监听当前文件夹下的所有文件改动(不太建议这样)
forever start -w app.js

显示所有运行的服务

forever list

停止操作

// 1. 停止所有运行的node App
forever stopall

// 2. 停止其中一个node App
forever stop app.js
通过// 当然还能够这样
// forever list 找到对应的id,然后:
forever stop [id]

重启操作

重启运行跟停止管理保持一致。

// 1. 启动所有
forever restartall

上面的一些解释足够平常使用,还有待之后继续补充。
开发和线上建议配置

// 开发环境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
// 线上环境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js

上面加上NODE_ENV为了让app.js辨认当前是什么环境用的。不加它可能就不知道哦?
一些注意点

有可能你需要采用unix下的crontab(定时任务)

该时候得注意配置好环境变量。

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

后记

毋庸置疑,拥有了Github就拥有了世界。
参考

https://github.com/nodejitsu/forever
http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever
https://github.com/nodejitsu/forever/issues/116

打包 压缩 tar -czvf nodePro.tar.gz nodePro/

netstat -ntlp 查看端口使用情况