Node.js<二十四>——云服务器部署项目

342 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

购买云服务器

  1. 镜像我们尽量选择CentOS(基于Linux操作系统),并且选择8.几的版本(会自带dnf—相当于yum的升级版,可以帮助我们在服务器上安装软件,注意:和npm这些包管理工具不同,这些安装的是库,而dnf安装的是软件,比如数据库这些)
  2. 设置云服务器的密码
  3. 网络和安全组那里需要配置基本的端口号,比如说连接mysql3306和我们常用的80端口等等

配置云服务器

连接云服务器

打开git bash,输入 ssh root@ip地址 命令即可进行连接

安装Node.js

如果我们想要安装一个软件包,可以进行如下的操作

// 搜索软件包
dnf search node.js
// 查看软件包信息
dnf info node.js
// 安装node.js
dnf install node.js

安装MySQL

  1. 安装MySQL
  • 安装mysql和安装node.js的步骤几乎一致
// 注意:我们安装的是mysql-server而不是mysql,这里-y的意思表示其依赖的内容也安装
dnf install mysql-server -y
  • 启动mysql-server
// 开启MySQL后台服务
systemctl start mysql
// 查看MySQL服务:active(running)表示成功
systemctl status mysql
// 随着系统一起启动
systemctl enable mysql
  1. 配置Mysql
  • 其不像在我们自己的电脑上安装mysql,并不会让我们设置账号和密码,所以我们需要自己通过命令来手动设置(一般选y就行,但是有一个关于密码强度的选项建议选2
mysql_secure_installation
  1. 数据库连接
  • 我们可以使用GUI工具navicat连接服务器上的数据库,但是主机要写成对应服务器的ip地址,数据库默认的端口号是3306,所以我们必须要在服务器对应的安全组中添加上这个端口号才能连接到远程数据库
  • 但这样还是不能连接,我们需要去修改数据库对应表中的一些信息,将user表中user字段为root那一行信息中的host字段值改为%

  1. 数据库迁移

我们如何把本地某个数据库转移到服务器中的数据库中呢?

其实可以将对应的数据库中的表结构和数据都转存到一个sql文件中,然后在服务器中的数据库执行该sql文件就行了

部署Node项目

将代码上传到git仓库中

记得要添加.gitignore文件,这个可以帮助我们在上传代码的时候忽略一些文件,比如说包含数据库密码和端口号的.env文件

远程仓库使用git命令克隆下来

  1. git bash中可以通过各种命令查看当前所在目录(owd)、所在文件夹下的文件列表(ls)以及创建文件夹(mkdir 文件夹名称)
  2. 执行git clone git仓库地址 命令即可将项目克隆下来
  3. 然后使用npm/yarn install安装依赖

建议使用vscode打开服务器文件,这里我们可以使用remote-SSH这个插件,具体操作可以上网查阅,因为在vscode不仅可以更方便的执行命令,还可以轻松的修改代码

启动项目

因为我们已经在服务器中安装了node,所以现在就可以在远程终端通过node ./src/main.js来启动我们的项目了,这样别人就可以通过服务器的ip地址通过对应的api获取数据了

但是node开启的进程会在你的终端关闭之后也会随着关闭,这样就达不到一天24h别人都可以通过服务器ip地址请求到对应的数据了,所以我们可以借助一个帮助我们管理Node的后台进程的库——pm2,这样在关闭终端时,Node进程会继续执行,那么服务器就可以继续为前端提供服务了

pm2常用的命令:

// 启动项目
pm2 start app.js --name 项目名称
// 显示所有进程状态
pm2 list
// 停止指定的进程
pm2 stop 0
// 停止所有进程
pm2 stop all
// 重启指定的进程
pm2 restart 0

// 杀死指定的进程
pmw delete 0
// 杀死全部进程
pmw delete all

// 后台运行pm2,启动四个app.js,实现负载均衡
pm2 start app.js -i 4