为什么node.js无法在共享主机上运行?

时间:2013-07-08 14:47:32

标签: node.js shared-hosting

第一件事:我搜索了所有已知的网络托管公司,以获得nodejs的共享托管,但我没有找到任何人。然后我才知道nodejs无法在共享主机系统上运行。我想知道为什么?

第二件事:我是预算正常的普通人。选择一个vps或deicated服务器或云托管使节点运行,但与PHP共享托管服务相比,它超出我的口袋金额范围,所以我应该学习node.js吗?

6 个答案:

答案 0 :(得分:26)

理论上它可以,但实际上它依赖于托管服务提供商来建立这样的基础设施。

与传统网络平台相比,节点是自我可持续发展的平台。对于PHP(例如),它使用apache或nginx(或任何其他)运行,而PHP本身就是脚本语言,其中一些库不会做很多逻辑实现,并且需要Web服务器解决方案。 Web服务器创建套接字以监听特定端口以获取流量,将自己发挥作用并执行PHP以处理请求。

同时node.js创建自己的套接字,并将其绑定到自己的端口。这使得它具有更多的低级访问权限,因此它本身就是Web服务器。你不能将一个端口绑定到两个应用程序,因此它已经不可用了 有些服务(Web服务器)允许您创建代理以将流量路由到您的node.js进程,但在某些情况下效率不高,并且共享主机不提供此类功能。

由于node.js仍然相当年轻,而且不同,它仍然没有达到大多数共享托管服务。有一些可用的在线服务以“共享”方式托管您的node.js应用程序。

此外,您可以在AWS上免费租用EC2 Micro实例(免费套餐)一年,这为您提供了充足的可能性和时间来尝试和测试不同的东西。您将获得半专用系统,您可以在其中执行任何操作(安装软件,修改操作系统配置等等),共享主机不允许您这样做。

答案 1 :(得分:11)

看看Heroku。对于简单的低流量应用,它们是免费的,可以轻松扩展以获得更多流量(增加成本)。此外,您使用Git进行部署,因此更新内容非常简单......

答案 2 :(得分:10)

还有其他方法可以部署node.js应用程序。

您可以使用PaaS服务,例如OpenshiftHerokuAppFogPaastordotCloud等。

答案 3 :(得分:4)

节点不像大多数服务器那样工作。使用IIS和Apache,有一个服务器运行多个站点,这适用于共享环境。使用Node,您运行自己的服务器,而不是在计算机上共享资源。

我不能告诉你是否值得学习节点,因为我不知道你的动机,但如果你选择去那里,它可以扩展你的职业机会,并扩展你的技能。

以下是低价格范围内的几种托管选项。

http://nodester.com/

https://www.nodejitsu.com/

答案 4 :(得分:4)

其他出色的节点应用托管选项包括Joyent的SmartOS和Microsoft Azure。两者都有免费试用期。

Azure可以成为node.js的一个很好的学习平台,因为您可以在Windows Server,Ubuntu Linux或Azure的特殊“网站”共享部署方案中托管您的节点应用程序。

http://www.windowsazure.com/en-us/develop/nodejs/tutorials/create-a-website-(mac)/

节点应用托管的另一个成本效益解决方案是Azure的“网站”方法 - 每月约10美元。缺点是您必须使用通过IIS托管节点应用程序的共享环境。在实践中,这对我来说很有用,但是你在Windows上运行时不能使用Node的某些Linux功能,并且你不会自己学习如何自己配置节点服务,这可能会或者可能会对你不重要(注意:如果您想从本地GIT存储库部署应用程序,Azure的GIT部署过程非常有用。另请注意,NodeIIS将在特定时间段内未使用时停止您的节点应用程序 - 并且当它再次自动启动时请求您的应用程序。)

Joyent的SmartOS平台是一款针对托管node.js应用而优化的Linux操作系统。它们具有令人印象深刻的可靠性和性能以及出色的诊断工具。

http://wiki.joyent.com/wiki/display/jpc2/Developing+a+Node.js+Application

到目前为止,我发现的最具成本效益的解决方案是DigitalOcean,这是一款出色的新托管解决方案,您只需每月5美元即可托管完整的Linux VM!到目前为止,我很幸运地在那里托管了Node应用程序:https://www.digitalocean.com/pricing

答案 5 :(得分:3)

a2hosting允许Node.js共享托管。但是没有经验。来自网络搜索

更新:使用DigitalOcean。私人VPS