AirportDB 从导入到上线:后端初学者教程
这套教程以本仓库为例,带你把 airport-db.zip 导入 MySQL,并将 Vue + Express 项目部署到京东云。生产环境使用 Nginx 提供前端静态文件、代理 API 和终止 HTTPS,使用 PM2 管理 Node.js 进程。
教程默认环境:
- Ubuntu 24.04 LTS;
- Node.js 22.20.0 或更高版本;
- MySQL 8.x;
- 域名
airport.cxhair.cn; - 项目目录
/var/www/airport-operations-explorer; - Express 监听
127.0.0.1:3000; - Nginx 对公网监听 80 和 443。
域名、用户名、IP、密码和目录都是示例。复制命令前先替换尖括号形式的占位符,并理解命令操作的对象。
推荐阅读顺序
- 部署架构与服务器准备
- 导入 airport-db.zip
- 验证数据并创建只读账号
- DNS 与 Certbot 子域名证书
- 使用 PM2 管理 Node.js 后端
- 使用 Nginx 托管前端和代理 API
- 第一次完整上线
- 日常更新与回滚
- 运维和故障排查
- 配置模板与检查清单
最终请求链路
浏览器访问 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 当前界面为准。