Node.js表达应用程序生产部署

假设我有一个nodejs表示 mongodb web应用程序,现在我想使用运行 Linux发行版的AWS EC2机器上线(我使用的是ubuntu服务器14.04,你会使用不同的东西吗?).

将体面的生产环境纳入单层而不是通常在开发环境中使用的基本步骤是什么?

你会使用http服务器(Nginx,apache,..)吗?你的防火墙配置是什么?在上市之前你会考虑什么呢(nodejs& express配置等……)?你会使用什么工具(例如永远)?您会考虑哪些其他系统配置?

这个问题的重点不在于性能,不考虑高水平的机器负载和应用程序扩展.

解决方法

我已经在AWS上为几个商业应用程序实现了生产环境,最近使用Node / Express / Mongo.通过大量的调查,反复试验和一些脚本编写,我已经确定了一个适合我的配置.

以下是我使用的服务/实用程序的摘要.通过设计,所有内容都可以广泛使用并且有详细记录,因此您可以毫无疑问地找到有关如何根据特定要求配置每个内容的讨论.

AWS服务

> EC2安全组:主防火墙
> ELB / Autoscaler(可选):负载均衡;根据负载添加/删除实例;启用S​​SL
> Cloudwatch:监控实例可用性
> SNS:指定Cloudwatch警报的通知方法(电子邮件/短信)

OS /公用事业

> Ubuntu:最新的LTS版本,目前为14.04;配置为使用cron / apt-get进行每周自动更新
> Nginx:逆向代理到节点进程; 50x错误处理;服务/公共档案;如果不使用ELB,则启用SSL
> Upstart:启动/停止应用程序进行维护;重生应用程序,如果它崩溃(永远的ala);在重新启动时启动应用
> Monit:监视节点进程以延长中断时间(处理新手重建失败);监控文件系统的可用空间;监控mongo进程

我使用标准的apt-get版本的node,express和npm,没有特殊的配置设置.为了部署应用程序更新,我编写了一个检查github分支的cron脚本,因此通过提交到该分支自动触发发布新版本.

当然还有更多的选择,而这些选择绝不是决定性的……换句话说,YMMV.但是,根据我的经验,这些配置相当容易,工作可靠,保持平稳运行,并在出现需要您注意的问题时快速通知您.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...