Part10-SSR渲染与线上部署

一、Koa2+MySQL项目线上部署

1、上传与安装依赖

a、上传项目并安装项目依赖

先将你的项目(除了 node_modules)放到服务器指定的位置,例如我存放的位置:

# 我的项目名称就叫cms-server
/usr/local/html/cms-server

然后通过ssh连接服务器,进入该目录,执行 npm i 安装依赖包。

这里很有可能会安装失败,原因是被package-lock.json影响。解决方案:

$ rm package-lock.json
# 方法一:
# 如果没安装过yarn就全局安装一下
$ npm i yarn -g
$ yarn

# 方法二:
# 如果不愿意使用yarn,也可以用cnpm淘宝镜像
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm i

安装完依赖包之后,安装压缩与解压工具:

b、ubuntu卸载MySQL

首先在终端中查看MySQL的依赖项:

卸载:

清除残留数据:

再次查看MySQL的剩余依赖项:

继续删除剩余依赖项:

至此已经没有了MySQL的依赖项,彻底删除!

c、ubuntu安装与配置MySQL

* Ubuntu换源

备份原来的sorce文件:

清空并编辑sources.list内容:

写入一个这里选择清华镜像源:

* 更新镜像源与软件

d、ubuntu安装mysql

出现下图选Y:

image-20211231204112300

接下来查看mysql版本:

会看到下图代表完全安装成功:

image-20211231204749492

e、忘记密码方案【备用】

f、mysql启动停止命令【备用】

2、pm2部署

先解释一下什么是pm2:

简单点说就是让你不需要像执行 node app.js 一样,必须一直保持终端开启,而是可以在你退出命令行界面时,依然将你的项目运行着。

a、pm2安装

pm2运行出来的列表如图:

image-20220101102913635

停止或开启该服务可以:

image-20220101103047382

b、配置安全组

例如你项目名为cms-server,端口为6688,那么就需要到实例的安全组中:

image-20220101093357386

c、访问IP+端口

例如:我的IP为8.130.20.212,端口号为6688,那么我的访问方式应为:8.130.20.212:6688,这也是我整个后端项目的根路径。

3、MySQL线上配置

a、连接本地数据库

目前我们只能访问根路径,因为其他路径基本都需要请求并访问数据库读取数据。因此我们需要把电脑本机的数据库搬运到服务器上。打开navicat,连接本地数据库:

image-20220101100230256

b、连接远程数据库

我们采用ssh连接:

image-20220101100958959

c、创建远程数据库

右键并新建数据库:

image-20220101101800372

新建后就会出现:

image-20220101101853229

d、数据传输

点击顶部工具栏,工具 - 数据传输

image-20220101102032579

点击 下一步

image-20220101102106225

选择 开始,传输完成后就会看到:

image-20220101102130989

这时候点击 关闭,再打开远程数据库的表,就会发现所有数据已经迁移:

image-20220101102228734

此时,我们完成了将本机数据库迁移至服务器的数据库,大功告成!

此时假设你的后端路由:8.130.20.212:6688/web/home/banner 可以返回首页banner数据,那么你将立刻看到:

image-20220101102616941

那么,至此,服务端部署全部完成!

4、持续化部署【扩展】

然而,如果项目需要频繁修改,并且实时查看线上环境,那可能就需要频繁打包并上传,这一点非常麻烦。有没有什么更好的解决方案?答案是有的:

二、 Nuxt项目线上部署

1、本地运行项目

a、先给 package.json 中添加:

b、命令行执行

2、项目打包

所有图片的引入改为require的形式。

a、nuxt.config.js 中:

b、package.json 中:

c、命令行执行客户端打包:

d、上传项目到服务器

把除了以下文件(夹)的所有内容都放到服务器任意指定的目录:

.git / dist / .gitignore / package-lock.json / yarn.lock

e、安装依赖并打包

服务器进入该目录,再次安装依赖并打包

如果安装过程中总是自动出现 package-lock.json,可以先做这一步设置:

f、pm2运行项目

首先确定pm2已经安装,未安装请参考nginx教程。

3、Nginx配置

a、修改配置

vim你的 nginx.conf

b、配置安全组

image-20211213115112974

c、访问

浏览器访问 http://codesohigh.com/cms-web 即可。

最后更新于

这有帮助吗?