浅谈Node后端+MySQL数据库部署轻量云服务器,让公网能访问其接口服务数据

前言:本文章基于腾讯云服务器的部分截图举例~
一、云服务器 VS 轻量应用服务器
  1. 传统后端开发:客户给一台物理实体服务器 → 后端登录进去,装数据库、装运行环境、部署项目、配置防火墙、维护系统。
  2. 腾讯云这里就是云端的虚拟电脑(虚拟服务器),代替物理那台机器(运行代码、跑后端程序、跑数据库的主机)。
  3. 区别:云服务器-适用于复杂项目,支持复杂网络配置,多扩展自由度高、
    轻量应用服务器-精简版,支持很多命令配置环境,不需要过多配置(一键装 WordPress 网站、一键装 Node、PHP 环境),省去很多运维配置,适用于小白上手,
二、腾讯云或阿里云产品下的子产品:COS(对象存储)
  1. 作用:线上存储空间,用来放图片、文档、静态文件。

  2. 在 COS 里可以创建存储桶,文件就上传到存储桶里面。COS 收费分 3 大块:

    1.存储容量费:文件占空间的钱

    2.外网流量费:别人下载文件流出的流量钱

    3.请求调用费:上传、查看文件接口调用的钱

  3. 两种交钱方式:

    ① 按量计费(默认:用多少,月底算多少钱)

    ② 资源包(预付费套餐,存储容量费)

  4. 注:资源包分好几种,各司其职,互不通用

    • 对象存储-容量包:只抵扣【存储静态资源的-容量费】,只管文件占空间的费用
    • 流量资源包:只抵扣外网下载流量费
    • 请求资源包:只抵扣 API 请求调用费
三、轻量服务器上-部署Node后端项目-接口能提供到公网能访问得到数据~

A【服务器网页控制台操作,不在终端敲命令,前置!】

  1. 防火墙放行 3000 端口:打开服务器的门,外网可以访问你后端程序的 3000 端口接口。(这一步是网页控制台操作,不在终端敲命令)

    B【Ubuntu服务器终端内操作顺序】

  2. 安装解压工具 unzip
  3. 上传后端 zip 压缩包到服务器(OrcaTerm 上传按钮,把本地 zip 传到服务器)
  4. 解压 zip 压缩包,整理项目文件夹(cd、unzip、rm、mv 清理旧文件)
  5. 【可选】如果上传的压缩zip文件包含.sh文件,则需要解决一个换行问题,解决后一键在Linux上面执行脚本,后面的6-11都可省略,给所有命令都放到.sh文件之中了,,,
  6. 安装 Node.js 运行环境
  7. 安装 MySQL 数据库软件 → 创建业务数据库、创建账号、导入业务数据
  8. 进入项目目录,安装项目依赖 npm install
  9. 数据库连接配置校验(项目代码要填数据库地址、账号密码,能连上 MySQL)
  10. 启动后端 Node 服务
  11. PM2:Node 程序进程管理工具。负责:启动后端、守护进程崩溃自动重启、配置服务开机自启(防止服务器重启后端就挂掉),
  12. 验证接口,测试服务是否正常工作

终端命令忘记存档截图,暂用空白终端图

>

  1. 浏览器 / 小程序验证接口是否通

注:这里详细说明下

这里说下zip 压缩包,我这里的zip压缩包,不单纯是node后端代码压缩包,其中还有sql文件和额外一键Linux可执行的.sh脚本文件(一键安装命令)

server‑upload.zip

├─node后端代码

├─数据库sql文件

└─✅ deploy.sh(额外手写的一键安装脚本,不属于node官方项目文件)

而普通的zip包,一般就是纯粹的node后端代码压缩包,最多加上sql文件

普通node项目

├─package.json

├─index.js 等业务代码

└─数据库sql

#没有 deploy.sh!!!全部步骤需要人手工敲命令完成~

最后就是:那这个换行坑 sed -i 's/\r//' deploy.sh 为什么会出现?

  1. deploy.sh 这个脚本,是在你的 Windows 电脑上编辑 / 保存的
  2. Windows 保存文本会自动加上看不见 \r回车符号
  3. 打包进 zip,上传服务器解压,这个隐藏字符跟着来到 Linux 服务器
  4. Linux 执行 .sh脚本,看到多余的\r就会报错:$'\r': 未找到命令
  5. 所以必须执行 sed,把这个隐藏字符清理掉

关键点:坑来自deploy.sh 这个脚本文件本身是 Windows 环境编辑出来的 。

如果没有这个 deploy.sh,就完全不需要执行这条 sed 修复命令。