1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 如何使用PM2部署Node.js项目

如何使用PM2部署Node.js项目

时间:2023-10-19 17:15:13

相关推荐

如何使用PM2部署Node.js项目

为什么使用 PM2?

进程管理:PM2可以管理多个Node.js进程,并确保它们始终运行。如果进程崩溃或停止,则PM2可以自动重新启动它们。日志管理:PM2可以记录Node.js应用程序的输出,并将其保存到文件中,可以轻松查看和分析这些日志文件,以便快速诊断和解决问题。负载均衡:PM2可以配置负载均衡,将流量分配到多个Node.js进程中。这可以提高应用程序的可扩展性和可靠性。部署管理:PM2可以帮助您轻松地部署和管理Node.js应用程序。可以使用PM2来部署应用程序,以便它们可以在多个服务器上运行,或者在生产环境中运行。监控:PM2可以监控Node.js应用程序的运行情况,并提供有用的指标和警报。这可以帮助了解应用程序的性能和可靠性,并及时识别潜在的问题。

PM2快速上手

安装PM2

npm install pm2 -g

进入Node.js项目根目录

// app.js// simple serverconst express = require('express');const app = express();app.get('/hello', (req, res)=>{res.send('hello')})app.listen(8888, () =>{console.log('Server listening on port 8888')})

启动项目

pm2 start app.js

确认程序状态

pm2 list

查看日志

pm2 log

停止应用程序

pm2 stop [app-id/app-name]

重启应用

pm2 restart [app-id/app-name]

pm2 一些其他的常用命令

删除所有应用程序:pm2 delete all

删除指定应用程序:pm2 delete [app-id/app-name]

监控和管理在 PM2 中运行的 Node.js 应用程序:pm2 monit。 通过pm2 monit命令,可以在终端中打开一个仪表盘,显示所有正在运行的应用程序及其资源使用情况,例如 CPU 和内存使用情况、请求次数等等。通过这些监控指标,可以更好地了解应用程序的运行情况,并及时发现潜在的问题,从而做出相应的优化或调整。

将 PM2 设置为开机自启动:pm2 startup

存当前运行的应用程序列表,以便下次启动时自动恢复:pm2 save

重新启动(直接将server kill掉然后重新启动一个server)名为 app.js 的应用程序:pm2 restart app.js

注:重新启动的这一段时间内,server是有一个空窗期的。这个时间内所有的request都会被内核拒绝,因为根本没有它们需要找的server存在。

重新加载名为 app.js 的应用程序:pm2 reload app.js

注:重载是对于cluster模式而言的,通过重新加载,pm2将逐个重新启动所有进程,始终保持至少一个进程运行。reload命令会先创建一个server,然后将原server kill掉,此时原server上的正在执行的request因为进程被关闭而失败。后续的request进来时,因为新server已经启动了。所以不存在空窗期,所以后续的request不会报错。

通过配置文件启动Node.js 项目

新建deploy.json

{"apps":[{"name": "app-server","script": "app.js","exec_mode": "fork","watch": false,"ignore_watch" : ["node_modules", "files"],"log_date_format": "YYYY-MM-DD HH:mm:ss","max_memory_restart": "3G","env": {"COMMON_VARIABLE": "true"},"env_production": {"NODE_ENV": "production"}}],"deploy": {"production": {"post-deploy": "pm2 startOrRestart deploy.json --env production","env": {"NODE_ENV": "production","PORT": "8888"}}}}

启动:pm2 startOrRestart deploy.json --env production

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。