【容器化】如何用宝塔 Linux 部署 Nest.js + Next.js 项目

665 阅读1分钟
  • 前端: Next.js
  • 后端: NestJS
  • 数据库: MongoDB

在阿里云上面买了个【轻量应用服务器】,镜像选的【宝塔 Linux】 面板

image.png

【轻量应用服务器】 VS 【云服务器 ECS】

image.png

【配置信息】 选了个低配版的

image.png

接着可以去控制台面板

image.png

第一次登录面板需要用户名和密码

image.png

之后可以进去【宝塔 Liunx】 面板部署项目了

前端是 Next.js 项目, 后端是 Nest.js, 所以部署的时候都需要选择 Node 项目

1、在软件应用商店安装 Liux、Node、Nginx、MongoDB, 本项目差不多用的应用是这些

image.png

2、安装 git 和 pnpm

sudo yum install git 

npm install pnpm -g

注: yum 和 brew 的作用一样

3、 进入终端,跑到项目更目录下(/www/wwwroot),git clone + 项目地址

4、 部署后端 Nest.js

  • 在文件下面,将环境变量 .env 文件上传到 项目根目录下面
  • cd 到项目根目录下面,运行 pnpm build
  • 连接 MonogoDB,我用的是远程数据库连接
  • 新建网站,添加 Node 项目,配置如下

image.png

5、 部署前端 Next.js

Next.js 是个全栈框架,但我只用它做了 SSR ,连接数据库那些操作放在了后端 Nest.js。所以新建网站的时候,必须得选 Node 项目

image.png

具体配置如下

image.png

这样通过服务地址+端口就可以访问饿了

6、 配置反向代理

将 80 -> 3000( 前端访问端口)

image.png

添加域名 image.png

7、 注意事项

  • 如果碰到端口不能访问,需要在服务器的防火墙打开端口限制

image.png