目前还在艰难摸索部署流程中,虽然初步完成了项目的部署。
不过由于种种原因,暂时还没成功,后续我会继续摸索完善该文档。
正文
整个流程其实和本地开发流程大概类似,安装配置好node环境,再安装PM2工具,用于管理进程。
在完成准备工作之后,上传nestjs
的后端环境压缩包,然后在线上npm装好包,到此完成
只是流程多了个PM2工具来管理进程。
安装node环境
安装完成后也要创建一个软链接才可以全局使用
创建目录
1 | mkdir -p /server/soft/node |
安装目录
1 | cd /server/soft/node |
下载安装包
下载最新版本的Node.js,这里我用wget
命令下载,如果不能用,建议查一下其他的linux下载命令。
1 | wget https://nodejs.org/dist/v20.5.0/node-v20.5.0-linux-x64.tar.xz |
解压到指定目录
这里我们就解压到
1 | sudo tar -xJvf node-v20.5.0-linux-x64.tar.xz -C /server/soft/node |
配置nodejs环境
看了其他人的文档,有人说创建软链接的方式不太好,个人参考那篇文档没跑通。
折腾了一段时间之后,还是选择如下方案,node环境推荐按照当前最新的稳定版本(node20)。
在默认路径中创建对应的软链 (推荐)
1 | # 创建 node 软链 |
优点: 创建一次,所有用户均可运行node相关命令
缺点: 每增加一个全局node相关命令都要创建软链
移除对应内容
如果要是对应的软连接已经被占用,可以用以下命令移除对应的软连接,再重新执行上边的命令
1 | sudo rm /usr/bin/node |
验证版本
如果这里版本验证成功后,到此,node
安装的流程就算是完成了。
1 | node -v |
安装PM2
安装pm2
也要添加软连接,因为使用npm下载安装,所以下载目录就在node的bin
目录下。
安装pm2
1 | npm install pm2 -g |
添加软连接
1 | sudo ln -s /server/soft/node/node-v20.5.0-linux-x64/bin/pm2 /usr/bin/pm2 |
启动nest项目
将本地的nest项目打包成tar包,然后传到对应的目录。
不过,如果你nest项目如果是独立的,你也可以考虑直接在服务器上用git
下载,只不过这么做太费事,我懒得整了,直接本地打包放上去就好。
创建目录
当前目录是用来放nest项目后端的
1 | mkdir -p /server/soft/nest-admin |
解压到指定目录
这里我们将对应的压缩包解压到我们刚才创建的目录中
1 | sudo tar -xvf nest-server.tar -C /server/soft/nest-admin |
切换目录
这里我们切换到对应的项目目录,然后为npm安装做准备。
1 | cd /server/soft/nest-admin/server/ |
安装依赖
因为我这里没有多个项目,所以我就不额外安装pnpm
来做包管理了,直接用npm
安装包依赖就够了。
1 | npm install |
如果要是你喜欢使用pnpm来进行管理,也可以提添加一个pnpm的软连接,方便后续用pnpm管理。
1 | # 创建 npm 软链 |
启动项目
1 | cd /server/soft/nest-admin/server/dist |
防火墙
我这里是用腾讯云小程序开了防火墙的对应的端口。
访问项目
因为我这里端口是8080,所以我这里就用8080启动项目
1 | ip地址:8080/swagger-ui/ |
pm2相关操作
1 | pm2 start app.js # 运行pm2启动项目 |
结语
目前项目中的问题还比较多,开发环境可以连接,但是部署到线上,因为没有合适的文档,所以总是会有各种问题。
现在还在艰难排查中,总算是总结出了一套可能并不好用的部署方式。
万里长征现在刚走了第一步,艰难摸索中,希望能有一些好的收获。