微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.但是,根据我的经验,这些配置相当容易,工作可靠,保持平稳运行,并在出现需要您注意的问题时快速通知您.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐