如何设置Node.js在服务器上始终运行(类似于Apache)

33 浏览
0 Comments

如何设置Node.js在服务器上始终运行(类似于Apache)

这个问题听起来很愚蠢,但是却很难通过谷歌找到答案:我有一个 Node 脚本,提供一个仅在内部使用的简单 API 的端点。我没有问题将脚本设置为在端口 XYZ 上监听并在本地测试。\n我从未完全理解过 Node.jd 如何在服务器上设置并像 Apache 一样运行。我已经有一个指向开箱即用的 Ubuntu Lucid 版本的 URL。但是很难找到关于这个的教程。我只需要在服务器上从命令行运行脚本然后关闭 SSH 连接吗?那似乎是一个可怕的方法。我需要学习如何将 Node 脚本变成像 httpd 一样的服务吗?这难吗?\n非常感谢。

0
0 Comments

问题原因:Node.js在服务器上运行时,默认情况下不会一直运行,需要手动启动和停止。这就导致了当服务器重启或出现其他问题时,Node.js服务会停止运行,需要手动重新启动。

解决方法:创建一个初始化脚本,使Node.js服务在服务器上一直运行。可以使用以下方法:

1. 下载初始化脚本文件:[https://gist.github.com/peterhost/715255](https://gist.github.com/peterhost/715255)

2. 将脚本文件保存到服务器的合适位置,例如`/etc/init.d/node-app`。

3. 在终端中运行以下命令,将脚本文件设置为可执行权限:

sudo chmod +x /etc/init.d/node-app

4. 编辑脚本文件,将其中的`NODE_PATH`和`NODE_APP`设置为正确的值。`NODE_PATH`是Node.js的安装路径,`NODE_APP`是要运行的Node.js应用程序的路径。

5. 在终端中运行以下命令,将脚本添加到系统服务中:

sudo update-rc.d node-app defaults

6. 现在,可以使用以下命令来控制Node.js服务:

- 启动服务:`sudo service node-app start`

- 停止服务:`sudo service node-app stop`

- 重启服务:`sudo service node-app restart`

通过以上步骤,可以将Node.js设置为在服务器上一直运行,类似于Apache等常见的服务器软件。这样,即使服务器重启或出现其他问题,Node.js服务也会自动重新启动。

0