前言
因为很多文档大多数都是解决了本地开发,但是很少有提及线上部署的文档。
使用本项目的开发者大多可能是前端开发人员,平日没太多接触过后端,对配套生态不太了解。
本文档会细致将部署流程整理出来,便于大家熟悉整个部署流程。
工具准备
正式开发之前,希望您能对以下内容有过相关了解,哪怕只是最基本的了解。
MySQL
,数据库工具,用来存放后端数据Redis
,数据库中间件,用来缓冲数据库请求Pm2
,服务端的进程管理工具,部署在服务端管理nest-server
Nginx
,服务端反向代理工具,部署在服务端,用来代理nest-web
- 云服务器,我们需要部署到线上,供所有人访问,推荐购买
linux
的服务器,便宜
部署阶段
无论是在本地还是线上部署完开发环境之后,我们接下来就可以进入正式的部署阶段了。
我们这里大概先介绍一下流程,后续每个部署流程的细节会单独出文档。
您可以根据自己的需要,看看自己需要参考哪些文档。
数据库部署
推荐先把MySQL
和Redis
部署到线上,这样我们操作起来更方便,不需要每次开机去启动,也不消耗本机性能。
部署完成后,推荐使用Navicat Premium Lite测试一下(免费,简单好用)。
MySQL
和Redis
都可以连接测试。
初始化数据库
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
的部署流程。