node是javascript的运行环境,用它建立一个服务端是很便捷的,媲美PHP、java和python,它是助力前端工程师走向全栈的好帮手【打了一波小广告】。刚好最近开发node项目,部署到宝塔的时候踩了很多坑,不过也获得了一些经验,在此记录:

一、前言

用Putty终端连接云服务器,初始化一个node项目,安装相应依赖,完成package.json等配置,这里不再详写,一张图放上:

二、安装PM2

宝塔软件商店安装PM2,给pm2安装express,开始项目。前提是已经放行3000端口【https协议】或444端口【http协议】

三、启动项目

项目启动成功,可以看到以下显示:

四、反向代理

如上图所示,点击映射,输入域名或主机IP,点击确定。

五、检验是否代理成功

面板左侧菜单栏进入网站,可以看到刚刚添加的域名后IP,如下图示则代表成功

六、浏览器访问

打开浏览器,输入ip地址,成功显示!nice~


七、避坑建议

node项目放到服务器上,端口是OFF状态,启动就秒级自动关闭,检查错误日志,显示Script /www/nodejs/socket.io/bin/www had too many unstable restarts (16). Stopped. “errored”,,报上面那个错误,最后查了一些资料找到了解决办法,再加上自我总结:


解决方法:


  • 1.先获取PM2的进程ID,ps ax | grep PM2
  • 2.确认一下进程所指向的路径是否正确,ls -l /proc/PM2_PID/cwd
  • 我这里的路径和我的项目不一致, 即No such file or directory,所以启动报错了
  • 3.如果不正确,杀掉进程:pm2 kill
  • 4.输出下log 
  • 5.回到宝塔PM2管理器,重复步骤三,重新创建项目任务
  • 6.启动成功,端口3000,状态为已启功:


附PM2相关指令:


  • PM2 的机器指令:
  • pm2 start (启动程序)
  • pm2 restart (重新启动程序)
  • pm2 logs (监控 log 信息)
  • pm2 show (检查指定ID的详细信息)
  • pm2 kill (刪除所有的程序)
  • pm2 delete (刪除指定ID的程序)
  • pm2 stop (停止指定ID的程序,不刪除)
下一篇讲服务器基于宝塔面板下安装配置MongDB配置远程访问环境


您已经阅读00:00:00欢迎留言评论,喜欢的话就为作者点个赞或者赏颗糖吧! 分享