AirportDB 从导入到上线:后端初学者教程

这套教程以本仓库为例,带你把 airport-db.zip 导入 MySQL,并将 Vue + Express 项目部署到京东云。生产环境使用 Nginx 提供前端静态文件、代理 API 和终止 HTTPS,使用 PM2 管理 Node.js 进程。

教程默认环境:

域名、用户名、IP、密码和目录都是示例。复制命令前先替换尖括号形式的占位符,并理解命令操作的对象。

推荐阅读顺序

  1. 部署架构与服务器准备
  2. 导入 airport-db.zip
  3. 验证数据并创建只读账号
  4. DNS 与 Certbot 子域名证书
  5. 使用 PM2 管理 Node.js 后端
  6. 使用 Nginx 托管前端和代理 API
  7. 第一次完整上线
  8. 日常更新与回滚
  9. 运维和故障排查
  10. 配置模板与检查清单

最终请求链路

浏览器访问 https://airport.cxhair.cn
  ↓
京东云安全组
  ↓
Nginx :443
  ├─ /、/assets/*、前端路由 → client/dist
  ├─ /api/*                    → Express 127.0.0.1:3000
  └─ /health                   → Express 127.0.0.1:3000
                                      ↓
                                MySQL airportdb_training

生产环境只对公网开放 SSH、HTTP 和 HTTPS。Express 的 3000 端口与 MySQL 的 3306 端口只允许服务器内部或明确的私有网络访问。

操作角色

教程中的命令属于四类角色:

角色 用途
本地开发者 修改代码、运行测试、推送 Git 提交
Linux 部署用户 拉取代码、安装依赖、构建和操作 PM2
sudo 管理员 安装系统包、修改 Nginx、防火墙和 systemd
MySQL 管理员 导入数据、创建账号、授予权限和添加索引

不要让 Node.js 应用使用 MySQL 管理员账号。应用只使用 SELECT 权限的 airport_app。

学习方式

每完成一个步骤,先执行该节的验证命令。不要把全部命令一次粘贴后再排错。部署问题通常发生在某一层,逐层验证比反复重启所有服务更容易定位原因。

涉及证书、DNS 和云安全组的控制台界面可能随时间变化。本教程关注稳定概念和命令;实际按钮名称以京东云和 Certbot 当前界面为准。