Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在azure虚拟机中永久运行节点服务器?_Node.js_Azure_Virtual Machine_Azure Web App Service - Fatal编程技术网

Node.js 如何在azure虚拟机中永久运行节点服务器?

Node.js 如何在azure虚拟机中永久运行节点服务器?,node.js,azure,virtual-machine,azure-web-app-service,Node.js,Azure,Virtual Machine,Azure Web App Service,我构建了一个基于web的移动应用程序(使用react),我将其作为Azure web应用程序托管。此网站连接到一个节点服务器,我正在使用azure虚拟机托管该服务器(我不知道这是否是最好的方法,也许我应该将其作为webapp而不是VM托管?) 我对开发基于web的移动应用程序并将其连接到云中托管后端的策略仍然是新手,因此,如果这是一个微不足道的问题,我深表歉意。 我使用WebSocket将前端连接到节点服务器,然后使用消息。我没有数据库,它是一个简单的应用程序 我运行应用程序的步骤如下: 我使

我构建了一个基于web的移动应用程序(使用react),我将其作为Azure web应用程序托管。此网站连接到一个节点服务器,我正在使用azure虚拟机托管该服务器(我不知道这是否是最好的方法,也许我应该将其作为webapp而不是VM托管?)

我对开发基于web的移动应用程序并将其连接到云中托管后端的策略仍然是新手,因此,如果这是一个微不足道的问题,我深表歉意。 我使用WebSocket将前端连接到节点服务器,然后使用消息。我没有数据库,它是一个简单的应用程序

我运行应用程序的步骤如下:

  • 我使用ssh从笔记本电脑连接到Azure VM
  • 使用
    node server.js运行我的服务器
  • 当服务器运行时,我可以刷新我的网站,一切正常
现在,问题是我希望节点服务器一直运行。但是,我注意到,当我从虚拟机断开笔记本电脑的连接(ssh)时,服务器停止运行。因此,每当我想使用应用程序时,我都会执行这些步骤(使用ssh连接到VM并手动运行服务器)

有没有一种方法可以让节点服务器一直运行而不停止?另外,由于我是新手,这是部署前端和后端的正确方法吗?我假设我不能在同一个Azure webapp中同时部署前端和后端,或者我错了吗?

(因为你的部分问题是“有更好的方法吗?”,我会回答这个问题,而不是在你当前的虚拟机主机中解决这个问题:)

要充分利用云计算为您的应用程序提供的优势,您总是首选云计算。在这种情况下,除非您有任何特定的原因,否则您应该将后端节点应用程序部署到另一个应用程序(也称为Web应用程序)中。或者你也可以考虑如果你的节点应用程序有一小部分API,但是它需要代码更新。两者都支持多个平台,包括node.js。由于您提到您正在利用Web应用程序开发react移动应用程序,所以我希望您对它已经有点熟悉了。另外,由于Azure功能需要更改代码,因此在这种情况下,Web应用程序是首选

注意:我现在省略了其他解决方案,例如,等等,因为目前我们讨论的是只部署一个应用程序的问题,而现在这些解决方案将是多余的

还有,说到你的观点

我假设我不能在同一个Azure webapp中同时部署前端和后端,还是我错了


是的,技术上你们可以,这取决于你们的场景,若两者都在同一个平台上,你们可以“捆绑”到一个应用中(就像本例中的节点)。不过,是否应该这样做将是一个固执己见的答案。但即使你把这些分开,你仍然可以利用单一的成本节约。因此,像你现在这样保持分离是我建议保持“关注分离”的方法。

谢谢你的提示。不过有一个问题。正如我所说的,我现在在虚拟机中托管我的节点服务器,并通过WebSocket将我的前端连接到它。如果我将我的节点服务器切换到webapp而不是VM,我能用websockets访问它吗?在这种情况下,服务器IP地址和端口会是webapp的url吗?我的意思是12.33.21.22作为IP和80作为端口,我是否应该在我的前端代码中复制webapp的url,例如和端口80,以便它与节点服务器连接?是的,Web App支持websocket(默认情况下关闭,您需要打开)谢谢!如果是这样的话,这将解决我的问题。因为webapp将永远运行,这就是我需要的。我对VM的问题是,我需要手动连接并运行我的服务器,但如果它作为一个webapp工作,那将是完美的,因为它将在我部署后自动运行。我会尝试一下,并发布反馈,随时发布,如果有进一步的问题,请让我知道。祝你好运。令人惊讶的是,这确实在某种程度上起了作用,但我收到了(关于SSL的)警告。这样做对吗?我是说用网络应用程序。仔细想想,我只需要nodejs服务器就可以将websocket连接到另一个后端服务器。我在webapp中不需要任何HTML/CSS,因此我在问自己这是否是正确的方法