怎么在亚马逊云服务器上部署Node.js?

​

目录

[一 .为了方便文件传输 需要安装两个软件](#一 .为了方便文件传输 需要安装两个软件)

内置文本编辑器

可选地存储会话信息

[二 .linux实例中安装nodeJs环境](#二 .linux实例中安装nodeJs环境)

[三 .拷贝源代码到服务器](#三 .拷贝源代码到服务器)

下载并安装WinSCP工具

开启测试程序

[forever 常用命令](#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 查看端口使用情况

​

相关推荐
寻道模式31 分钟前
【运维心得】完整教程:绕过Win11限制让老机焕发新生
运维·操作系统·win11
zzu123zsw36 分钟前
从 proxy_pass 末尾斜杠到 WebAssembly 预压缩:深挖 Nginx 生产环境四大高频踩坑点
运维·nginx·wasm·webassembly·devops·运维排错
中屹指纹浏览器svip36 分钟前
打开账号环境网页报错,常见原因有哪些?
服务器·开发语言·php·中屹指纹浏览器
2401_868534781 小时前
以太网物理层标准
服务器·网络
tg_xianheyun1 小时前
亚马逊云服务器部署网站的步骤与上线检查清单
服务器·阿里云·云计算
张洛闻Eren1 小时前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible
郝亚军1 小时前
RK3562 中有 mosquitto、nginx 了,还需要 http,ftp,tftp 等协议吗?
运维·nginx·http
云边云科技_云网融合2 小时前
从 POS 机到访客 Wi-Fi:零售门店安全建设的完整解法
服务器·网络·数据库
hiahiahia1232 小时前
Message 和对话
服务器·前端·数据库
重生之小比特2 小时前
【Linux系统】07 进程状态
linux·运维·服务器