我是否需要一台不同的服务器来运行node.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我是否需要一台不同的服务器来运行node.js相关的知识,希望对你有一定的参考价值。

对不起,如果这是一个错误的问题在这个论坛,但我只是卡住,需要一些建议。我有一个共享托管服务和一个安装了node.js的基于云的托管服务器。我想正常托管我的网站,但我也希望使用node.js添加实时聊天和位置跟踪。我很困惑我在几个地方阅读的东西,因为node.js本身就是一个服务器,但不是设计用于托管网站?所以我必须运行2个不同的服务器?一个用于网站,一个用于运行node.js?当我设置运行node.js脚本的云时,我无法再访问网页。

什么是我实现这一目标的最好方式,因为我只是绕圈子。还有一种方法我可以在我的PC上设置一个服务器,然后运行并一起测试这两个,所以我看到了什么需要并让它工作,因为它将阻止我订购我不需要的服务器。

非常感谢任何帮助或建议。

答案

Node可以使用类似Express的框架来提供网页,但如果在与另一个Web服务器程序(Apache等)相同的端口上运行,则可能会导致冲突。一种解决方案可以是通过端口80上的Web服务器(或HTTPS上的443)为您的网页提供服务,并在不同的端口上运行您的节点服务器,以便来回发送信息。

另一答案

您可以通过多种方式实现此目标,但这是一种流行的方法。

您可以使用nginx作为面向前端的Web服务器,并将请求代理到您的后端节点服务。

例如,在NGINX中,您将按如下方式配置上游服务:

upstream lucyservice {
  server 127.0.0.1:8000;
  keepalive 64;
}

您在上面看到的8000只是一个示例,您可能正在另一个端口上运行您的Node服务。

在您的配置中(在服务器配置部分),您将代理服务请求,如下所示:

location / {
  proxy_pass http://lucyservice;
}

您的节点服务可以在流程管理器中运行,例如forever / pm2等。您可以在群集中运行多个Node服务,具体取决于您的计算机有多少处理器等。

所以回顾一下 - 面向前端的Web服务器将处理端口80(HTTP)和/或443(HTTPS)上的所有流量,这将代理对您定义的任何端口上运行的Node服务的请求。如果您需要/希望,所有这些都可以在一台服务器上发生,也可以在多台服

以上是关于我是否需要一台不同的服务器来运行node.js的主要内容,如果未能解决你的问题,请参考以下文章

在一台服务器上运行多个 node.js 演示的最佳方式

Bot Emulator 连接到另一台机器上的 Node.js 服务

是否可以在 node.js 服务器上设置运行(服务器端)的 socket.io 客户端?

如何使用备用配置从同一文件夹运行第二个node.js服务器

linux部署自动node任务,并反向ssh连接

node 怎么在服务器上运行?