pm2进行服务端部署总结
因为是做平台相关项目,所以对 seo 有要求, 所以考虑 使用 nuxt.js 实现服务端渲染,一个有利于 seo, 还可以提高页面加载速度。
本地开发一切顺利,线上部署遇到了以下问题:
- 构建好的代码放到服务器端,直接 npm run start 终端关掉,进程也会被停掉
- 使用 npm run start & 在后台运行, 终端关掉服务正常,但是不能维持稳定的服务,进程还是会挂
解决方案:pm2,查看官网详细教程
pm2 守护进程管理器,管理和保持应用程序在线,而且可以使用集群模式,根据可用的 CPU 数量进行缩放,这将大大提高应用程序的性能和可靠性
安装并使用 pm2
1 |
|
使用 pm2 启动 node 服务
1 |
|
使用 curl ip + 端口 检查启动是否成功
1 |
|
正常启动后,浏览器 ip + 端口也可以正常访问,最后阿里云做一下域名解析,服务端 nginx 设置一下反向代理就可以使用域名访问了。
pm2 常用操作
重启服务
1 |
|
删除服务
1 |
|
pm2 查看实时的日志输出
1 |
|
pm2 错误日志保存地址
1 |
|
终端监视内存和 CPU
1 |
|
查看列表
1 |
|
常用操作
查看端口号是否被占用
1 |
|
停掉进程
1 |
|
总结
- 直接使用 node server.js 开启服务,修改文件无法热更新,需要关闭进程重新启动
- 开发环境可以使用 nodemon 文件修改,进程自动重启
- 服务端使用 pm2 直接后台运行服务,不占用终端,文件修改后需要 reload
目前对于 pm2 的使用可以满足项目需要,但是实现的还是不够优雅,需要再优化一下,后续有更好的实现也会持续更新。如果有不对的,或者各位大佬有好的实现方案,也希望可以不吝赐教(手动抱拳)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!