如何永久地 运行 Azure 虚拟机中的节点服务器?
how to run a node server in an azure virtual machine permanently?
我构建了一个基于 Web 的移动应用程序(使用 React),我将其托管为 Azure Web 应用程序。这个网站连接到我使用天蓝色虚拟机托管的节点服务器(我不知道这是否是最好的方法,也许我应该将其托管为网络应用程序而不是虚拟机?)。
我对开发基于 Web 的移动应用程序并将其连接到云中的托管后端这一策略还很陌生,所以如果这是一个微不足道的问题,我深表歉意。
我正在使用 websockets 将我的前端连接到节点服务器,然后我使用消息。我没有数据库这是一个简单的应用程序。
我对 运行 应用程序执行的步骤是:
- 我使用 ssh 从笔记本电脑连接到 Azure VM
- 运行 我的服务器使用
node server.js
- 当服务器 运行ing 时,我可以刷新我的网站,一切正常
现在,问题是我希望节点服务器一直 运行。但是,我注意到当我断开 (ssh) 我的笔记本电脑与虚拟机的连接时,服务器停止 运行ning。因此,每次我想使用该应用程序时,我都会执行这些步骤(使用 ssh 连接到 VM 并 运行 手动连接服务器)。
有没有办法让节点服务器一直运行不停机?另外,由于我是新手,这是部署前端和后端的正确方法吗?我假设我不能在同一个 Azure webapp 中同时部署前端和后端,或者我错了吗?
(由于您的部分问题是围绕“是否有更好的方法?”,我会回答这个问题而不是在您当前的 VM 托管中解决问题 :))。
如果您的节点应用程序只有一小组 API,要充分利用云应用程序,PaaS is always preferred over IaaS. In this case, unless you have any specific reason, you should deploy your backend Node app in another App Service (aka Web App). Or you can consider Azure Function也是如此,但它需要更新代码。两者都支持多个平台,包括 node.js。既然你提到你正在为你的 React 移动应用程序利用 Web App,那么我希望你已经有点熟悉它了。此外,由于 Azure Function 需要更改代码,因此在这种情况下首选 Web App。
注意:我暂时省略了其他解决方案,例如 AKS, Service Fabric 等,因为目前我们正在讨论仅部署单个应用程序的问题,目前这些解决方案会过大。
另外,说到你的意思
I assume I can't deploy both frontend and backend in the same Azure webapp or am I wrong?
是的,从技术上讲你可以,这取决于你的场景,如果两者都在同一平台上(如本例中的 Node),则通过“捆绑”到一个应用程序中。尽管是否应该这样做将是一个自以为是的答案。但即使您将它们分开,您仍然可以利用单个 App Service Plan 来节省成本。因此,像现在这样保持分离是我建议保持“关注分离”的方法。
我构建了一个基于 Web 的移动应用程序(使用 React),我将其托管为 Azure Web 应用程序。这个网站连接到我使用天蓝色虚拟机托管的节点服务器(我不知道这是否是最好的方法,也许我应该将其托管为网络应用程序而不是虚拟机?)。
我对开发基于 Web 的移动应用程序并将其连接到云中的托管后端这一策略还很陌生,所以如果这是一个微不足道的问题,我深表歉意。 我正在使用 websockets 将我的前端连接到节点服务器,然后我使用消息。我没有数据库这是一个简单的应用程序。
我对 运行 应用程序执行的步骤是:
- 我使用 ssh 从笔记本电脑连接到 Azure VM
- 运行 我的服务器使用
node server.js
- 当服务器 运行ing 时,我可以刷新我的网站,一切正常
现在,问题是我希望节点服务器一直 运行。但是,我注意到当我断开 (ssh) 我的笔记本电脑与虚拟机的连接时,服务器停止 运行ning。因此,每次我想使用该应用程序时,我都会执行这些步骤(使用 ssh 连接到 VM 并 运行 手动连接服务器)。
有没有办法让节点服务器一直运行不停机?另外,由于我是新手,这是部署前端和后端的正确方法吗?我假设我不能在同一个 Azure webapp 中同时部署前端和后端,或者我错了吗?
(由于您的部分问题是围绕“是否有更好的方法?”,我会回答这个问题而不是在您当前的 VM 托管中解决问题 :))。
如果您的节点应用程序只有一小组 API,要充分利用云应用程序,PaaS is always preferred over IaaS. In this case, unless you have any specific reason, you should deploy your backend Node app in another App Service (aka Web App). Or you can consider Azure Function也是如此,但它需要更新代码。两者都支持多个平台,包括 node.js。既然你提到你正在为你的 React 移动应用程序利用 Web App,那么我希望你已经有点熟悉它了。此外,由于 Azure Function 需要更改代码,因此在这种情况下首选 Web App。
注意:我暂时省略了其他解决方案,例如 AKS, Service Fabric 等,因为目前我们正在讨论仅部署单个应用程序的问题,目前这些解决方案会过大。
另外,说到你的意思
I assume I can't deploy both frontend and backend in the same Azure webapp or am I wrong?
是的,从技术上讲你可以,这取决于你的场景,如果两者都在同一平台上(如本例中的 Node),则通过“捆绑”到一个应用程序中。尽管是否应该这样做将是一个自以为是的答案。但即使您将它们分开,您仍然可以利用单个 App Service Plan 来节省成本。因此,像现在这样保持分离是我建议保持“关注分离”的方法。