Sca*_*aux 3 linux deployment api service node.js
过去,我总是使用Heroku平台来托管和运行我开发的任何 API。我最近决定在我的 Linux (Debian) 专用服务器上转移我正在开发的最后一个。
因为它比我的任何 Heroku 实例都更强大,我想我会提高我的应用程序的性能。
现在我正在寻找工具或脚本,以便在后台部署和运行我的应用程序,而无需手动重新启动它,以防出现崩溃或任何问题。
这基本上就是heroku所做的。
我知道这/etc/init.d service件事,也知道screen方法。我更在寻找“即用型”和可配置的解决方案,这将节省我的时间。
那么,部署应用程序并确保它始终正常运行的最佳方法是什么?
首先,您需要有一个持久的后台服务,它可以让 NodeJS 进程(服务器实例)在崩溃和重启时保持运行。
Pm2是一个流行的节点进程管理器。它主要通过 CLI 操作:
npm -g install pm2
pm2 start --name my_server ./server.js
pm2 list
pm2 stop my_server
pm2 restart my_server
pm2 logs my_server
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令自动安装 init.d 或 upstart 等脚本:
pm2 startup
Run Code Online (Sandbox Code Playgroud)
因此,它可以在主机重新启动后重新启动。
流程管理是自动化的一部分。另一个是在服务器主机上获取最新代码并重新启动服务器。
一种方法是在服务器上克隆代码存储库。然后每次需要部署时,都需要在主机上执行:
pm2 stop my_server
git pull
pm2 restart my_server
Run Code Online (Sandbox Code Playgroud)
另一种更自动化的方法是在主机 ( GitLab )上设置一个 git 服务器,并在将代码推送到项目存储库时自动重新启动 ( Git Hooks : Post Receive )。您可以将 pm2 restart 脚本放置在托管项目存储库的 post receive hook 中。
有了这个,部署将非常简单:
git push server branch
Run Code Online (Sandbox Code Playgroud)
还有更强大的解决方案可用,例如:Docker。
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |