当前位置: 首页 > 面试题库 >

NodeJS托管主机与VPS

洪经义
2023-03-14
问题内容

有很多托管的基于云的托管服务,用于Node.js ,这些服务似乎相对较新,但仍处于Beta中。

托管nodejs应用程序的另一种方法是在像Linode这样的VPS上建立堆栈。

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

考虑到这些服务的年龄,哪一种更适合生产。

需要明确的是,我并不是要选择提供程序,而是要决定是在托管的nodejs特定托管还是在老式的自设置VPS上托管。


问题答案:

大多数情况下,使用其中一项服务是您需要编写的代码-让您编写代码,让他们担心管理机器,保持进程运行,创建发布渠道,修补OS等…

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

另一个考虑因素是,一些托管服务商和云提供商会提供专有或不同的技术变体。它们有它们的理由,并且它们提供了价值,但这确实意味着,如果您要切换云提供商,则可能意味着您必须重写代码,部署脚本等。另一方面,使用以标准操作系统为基准的虚拟机是很普通。如果您自动化/编写脚本/记录虚拟机的配置,并且代码保持通用,那么您的选项将保持打开状态。如果您确实依赖专有的云技术,那么最好将其抽象到接口之后,这样它是一个分离的组件,并且不会散布在整个代码中。

我都做过 我最近进行了VM路径学习,主要是因为我想学习。我不得不:

  • 从云提供商那里获取虚拟机
  • 我必须更新并修补操作系统
  • 我必须安装并配置git作为发布渠道
  • 我不得不编写一些脚本并使用诸如永久之类的东西来保持其运行
  • 我必须配置反向http-proxy才能使其运行多个站点。
  • 我必须使用云提供商配置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



 类似资料:
  • Web/云/静态主机托管工具 AWS [$] Heroku [free to $] DigitalOcean [$] Modulus [$] DIVSHOT [free to $] netlify [free to $] surge [free to $]

  • 内容提要 本章主要介绍了关于在一台物理服务器上托管了很多的主机(也就是说一个电脑里面部署了两个或者更多网站),此时,客户端怎么样和服务器端沟通,才能无差错地访问对应资源的主机(用户1访问a网站的资源,那么就不能跑到b网站上获取资源)。以及介绍了一些服务器集群的概念! 相关概念 Web主机托管:对内容资源的存储、协调以及管理的职责统称为Web主机托管。主机托管是服务器的主要功能之一。 托管者:如果某

  • 问题内容: 因此,我有一个使用angularJS和nodeJS的网络应用程序。我不想只使用本地主机来演示我的项目,因为当我键入“ node server.js”然后转到本地主机时,它看起来一点也不酷。 由于我打算将Firebase用于数据,因此我注意到Firebase提供了托管。我尝试了它,但它似乎仅托管index.html,而不通过/使用server.js。我已经为服务器使用/更新了自定义文件。

  • 这与两个职位有关- 使用WildFly托管多个域(下拖), 野生飞行- 创建/编辑jboss-web.xml的变通方法似乎不起作用。 在我的场景中,两个虚拟主机使用完全相同的WAR文件服务,没有上下文根配置,我尝试了这种变通方法。 在wildfly/standalone/configuration/standalone中。xml: 在JBossWeb中。xml: 在部署/重新部署期间,Wildfl

  • 问题内容: 我正在为项目使用节点,表达和更多其他依赖项。我想知道如何在Firebase上托管此项目。我的项目将具有controller,view和其他文件夹以使该项目成为可能。它已经具有诸如pug / handlebars的视图引擎。 在线教程仅显示如何使用公用文件夹中的单个index.html托管Firebase。我应该如何将我的项目与所有其他文件夹一起托管?我知道如何在nodeJS中使用fir

  • 首先,我必须说,这个问题已经被问了几千次了。我使用以下工具创建了我的Laravel 5.5项目: 我没有给这个项目增加任何东西。项目在本地运行没有问题。当我想在共享托管网站上托管项目时,问题就来了(我正在使用infinityfree.net) Laravel 5.5的最低PHP版本:PHP 我的共享托管站点php版本:php版本7.0。19 我所做的唯一更改是: > 我复制了公共文件夹的内容到我的