如何将 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