NodeJS托管主机与VPS

You*_*our 25 cloud hosting vps node.js

有一堆基于托管云的托管服务用于nodejs ,这些服务看起来相对较新,有些还处于测试阶段.

托管nodejs应用程序的另一个途径是在像Linode这样的VPS上设置堆栈.

我想知道这两种部署之间的基本区别是什么.在选择一个因素时应该考虑哪些因素?

考虑到这些服务的年轻程度,哪一个更适合生产.

要明确我不是要求选择提供商,而是要决定是在托管节点上托管特定托管还是在老式自我设置VPS上托管.

bry*_*mac 34

使用其中一项服务大部分都是放手 - 您编写代码并让他们担心管理框,保持流程,创建发布渠道,修补操作系统等等......

相比之下,拥有自己的虚拟机可以为您提供更多控制权,但需要更多的前期和持续时间投资

另一个考虑因素是一些托管商和云提供商提供专有或不同的技术变体.他们有理由,他们提供价值,但它确实意味着,如果你想转换云提供商,它可能意味着你必须重写代码,部署脚本等......另一方面,使用标准操作系统的虚拟机作为基线是非常通用.如果您自动化/脚本/记录VM的配置,并且您的代码保持通用,那么您的选项将保持打开状态.如果您确实依赖于专有的云技术,那么最好将它抽象出一个接口,这样它就是一个解耦的组件,而不是遍布整个代码.

我做过两件事.我最近做了VM路径主要是因为我想要学习经验.我不得不:

  • 从云提供商处获取VM
  • 我不得不更新和修补操作系统
  • 我不得不安装和配置git作为发布渠道
  • 我不得不写一些脚本并使用永远的东西来保持它的运行
  • 我不得不配置反向http代理以使其运行多个站点.
  • 我必须使用云提供商配置DNS,为git打开端口等...

名单还在继续.最后,它花费了我更多的前期时间而不是编码,但我学到了很多东西.如果那些对你很重要,那就试一试吧.如果您想专注于编写代码,那么节点托管提供商可能适合您.

最后,我还有更多选择 - 我想添加第二个网站.我添加了进入我的反向代理的条目,附加我的脚本以启动另一个应用程序永远,瞧,另一个网站.更多控制.在那之后,我想尝试mongodb - 简单 - 安装它.

成本方面它们大致相同,但如果你开始托管多个网站与许多其他软件包,如数据库等...,那么VM可以开始变得更便宜.

Nodejitsu开源他们的工具,如果你自己做的话也会更容易.

如果你自己做,这里有一些可能对你有用的链接:

保持服务器正常运行:

https://github.com/nodejitsu/forever/

http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

https://github.com/bryanmacfarlane/svchost

Upstart和Monit通过监控自动启动和重启

http://howtonode.org/deploying-node-upstart-monit

群集节点每个核心运行一个进程

http://nodejs.org/docs/latest/api/cluster.html

反向代理

https://github.com/nodejitsu/node-http-proxy

https://github.com/nodejitsu/node-http-proxy/issues/232

http://blog.nodejitsu.com/http-proxy-middlewares

https://github.com/nodejitsu/node-http-proxy/issues/168#issuecomment-3289492

http://blog.argteam.com/coding/hardening-node-js-for-production-part-2-using-nginx-to-avoid-node-js-load/

编写安装脚本

https://github.com/bryanmacfarlane/svcinstall

基于进程退出代码退出Shell脚本

发布网站

使用git发布到网站


Gol*_*den 14

恕我直言,设置自己的堆栈的最大缺点是你需要管理诸如使Node.js运行forever,将其作为守护进程启动,将其置于反向代理(例如Nginx)之类的东西等等......这是伟大的事情关于Node.js - 制作一个单线程的Web服务器 - 是生产就绪系统的最大缺点之一.

此外,您还有自己管理,更新和保护服务器的所有问题.

对于托管人来说,这更容易:通常它就是一个git push,就是这样.缩放?简单.复制?简单....?简单.只需点击几下即可.

托管人的缺点是你无法调整环境.好的,您可以选择运行哪个版本的Node.js和/或npm,但就是这样.您无法控制安装的第三方软件.你无法控制操作系统.您无法控制服务器的位置.等等 ...

当然,一些托管服务商允许您访问其中的一些内容,但很少有托管服务商支持所有这些内容.

因此,基本上关于Node.js的问题与彼此的技术相同:它是个人主义,定价,可扩展性,可靠性,知识等的专业与骗局.

我个人选择与主机一起去:我节省的时间和精力轻松超越劣势.提醒你:对我个人而言.

这个问题需要单独回答.