我是否需要一台不同的服务器来运行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的主要内容,如果未能解决你的问题,请参考以下文章
Bot Emulator 连接到另一台机器上的 Node.js 服务