Skip to content

前言

因为很多文档大多数都是解决了本地开发,但是很少有提及线上部署的文档。

使用本项目的开发者大多可能是前端开发人员,平日没太多接触过后端,对配套生态不太了解。

本文档会细致将部署流程整理出来,便于大家熟悉整个部署流程。

工具准备

正式开发之前,希望您能对以下内容有过相关了解,哪怕只是最基本的了解。

  • MySQL,数据库工具,用来存放后端数据
  • Redis,数据库中间件,用来缓冲数据库请求
  • Pm2,服务端的进程管理工具,部署在服务端管理nest-server
  • Nginx,服务端反向代理工具,部署在服务端,用来代理nest-web
  • 云服务器,我们需要部署到线上,供所有人访问,推荐购买linux的服务器,便宜

部署阶段

无论是在本地还是线上部署完开发环境之后,我们接下来就可以进入正式的部署阶段了。

我们这里大概先介绍一下流程,后续每个部署流程的细节会单独出文档。

您可以根据自己的需要,看看自己需要参考哪些文档。

数据库部署

推荐先把MySQLRedis部署到线上,这样我们操作起来更方便,不需要每次开机去启动,也不消耗本机性能。

部署完成后,推荐使用Navicat Premium Lite测试一下(免费,简单好用)。

MySQLRedis都可以连接测试。

初始化数据库

nest-admin项目中自带数据库初始化脚本,打开nest-admin/server/db/init.sql,复制到Navicat的新建查询中,执行一下。

如果没有什么意外,数据库初始化脚本应该是没什么问题。

打包发布后端

和前端的部署不太一样,前端部署可能直接扔dist包到对应文件夹,供外部访问即可。

nest-server需要我们需要在服务器上下载npm工具,安装node_modules依赖,这样才能在线上启动服务。

我们将打好的后端包放到线上之后,安装完依赖之后,本步骤就到此结束。

安装PM2工具

PM2是服务端的进程管理工具,之所以用PM2而不是自己手动启动,主要是为了便于解决自动重启服务等烦心问题。

相对来说,PM2不怎么占用服务器性能,据群友说,1核2G的云服务器都能带得动,所以不必担心配置问题。

当我们安装完PM2工具之后,用PM2启动后端项目,至此,我们可以访问服务端的接口了。

安装nginx

安装nginx主要是为了代理前端的地址,便于外部访问,如果你用宝塔部署也可以,这个流程很简单。

打包发布后端

nginx配置好代理地址之后,我们将web端部署到对应的位置。

这里我们需要注意,路由history模式下,你刷新页面可能会导致访问失效,所以记得要配置好对应的内容。

当我们完成这些配置之后,应该就可以访问项目了。

至此,我们就完成整个项目线上部署,我们已经可以访问自己线上的内容了。

结语

本文目前是笔者根据自己的学习经验整合的,可能流程中有些遗漏,但是可以保证整个流程绝对可以跑通。

如果您有更好的流程,欢迎提交PR或者加入我们的交流群,提出更好的部署方式,优化nest-admin的部署流程。