如何将 Express NodeJS 项目部署到 Centos 服务器?

Posted

技术标签:

【中文标题】如何将 Express NodeJS 项目部署到 Centos 服务器?【英文标题】:How to deploy Express NodeJS project to Centos server? 【发布时间】:2016-12-08 05:17:40 【问题描述】:

我从未部署过 NodeJS 应用程序,因此不知道该怎么做。 我已经工作并完成了一个使用 MongoDB 作为其数据库的 Express NodeJS 应用程序。

在处理项目时,我通常会使用“npm start”来测试应用程序的当前进度(通过在端口 3000 上检查它)。

为了运行这个项目,我购买了一个在 Centos 中运行的虚拟专用服务器。 我在服务器上有我的文件,并使用“npm start”来确保一切正常。我通常通过 SSH 连接到服务器并从那里工作来做到这一点。

现在,我应该如何部署项目,以便我可以退出 SSH 会话并且该项目仍将在服务器 IP 地址上运行。

感谢您的帮助!

【问题讨论】:

嗨@Nedaaa - 你试过我提供给你的解决方案了吗?如果它解决了你的问题,请记得“接受”我的回答并给它一个绿色的复选标记。 你好@rdgd,不幸的是,我在服务器上遇到了技术问题,当服务器再次运行时,我会尝试你的解决方案。不过感谢您提供解决方案。我很感激。 【参考方案1】:

您所描述的是需要在后台运行 NodeJS 进程。还有其他方法可以做到这一点,但为了更好地管理您的应用程序,我建议您使用 NodeJS 进程管理器。

看看PM2 这是一个流行的解决方案,文档很好,应该适合你。

我建议在您的 VPS npm install -g pm2 上全局安装它,然后导航到您的项目根目录并运行 pm2 start whatever-your-main-js-file-is-named.js 然后您可以使用命令 pm2 list 查看有关所有进程的信息,还有其他几个命令可以了解更多信息关于您正在运行的进程,只需查看他们的文档或他们的pm2 --help

【讨论】:

pm2 开始运行项目,但立即出错,我无法找到查看错误发生原因的方法。 还有其他建议吗? 您可以尝试查看 pm2 日志来解决问题。他们应该在~/.pm2/logs。如果您想尝试另一个流程管理器,我会说另一个最受欢迎的流程管理器是 foreverjs github.com/foreverjs/forever 试一试。如果这不起作用,那么您知道问题不在于流程管理器本身,而在于您的应用程序或更高的服务器配置。我说先解决问题,然后再使用不同的工具。 我检查了所有~/.pm2/logs/app-error.log~/.pm2/logs/app-out.log~/.pm2/pids/app.pid。不幸的是,所有三个文件都是空的。我想我会尝试foreverjs。希望这行得通。 我应该以任何方式更改我的 app.js 吗?现在,它只有所有页面和内容的路由。除了项目运行所需的软件之外,我没有添加任何特殊的东西来使它与任何特殊的软件一起工作。

以上是关于如何将 Express NodeJS 项目部署到 Centos 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Typescript、NodeJS 和 Express 应用程序部署到 Heroku

将React + NodeJS + Express + MySQL应用程序部署到Heroku仅部署服务器而不是React

NodeJS+Express+MySQL开发小记:服务器部署

使用nodejs编写api接口并部署到服务器上

nodejs 如何部署到服务器上?

如何将nodeJS项目托管到firebase?