综合练习
绘制 CodeRoadMap 请求路径图。
40 分钟
综合练习
绘制并验证 CodeRoadMap 从域名到 MySQL 的完整网络路径,串联本 track 与 dns-essentials、http-protocol-essentials、nginx-essentials、linux-essentials。
学习目标
- 独立完成全链路示意图与端口表
- 用命令验证每一跳可达
- 模拟一类故障并按分层流程修复
核心内容
目标架构图(需亲手重画)
用户浏览器
│ HTTPS GET /api/tracks
▼
[dns] coderoadmap.cn ──A 记录──► 公网 IP
│
▼ TCP :443
[Nginx] TLS 终止,location /api/* → proxy_pass
│
├──► 127.0.0.1:3000 Next.js(页面 /)
│
└──► 127.0.0.1:8080 Spring Boot(/api/*)
│
└── TCP :3306 ──► MySQL(127.0.0.1)
对照 http-intro、ngx-intro 核对 HTTP 与反代细节。
验证清单
dig +short coderoadmap.cn A
curl -I https://coderoadmap.cn/
curl -s https://coderoadmap.cn/api/tracks | head -c 200
ssh user@server 'ss -tlnp | grep -E "443|3000|8080|3306"'
ssh user@server 'curl -s http://127.0.0.1:8080/actuator/health'
公网 不应 访问 :8080、:3306(net-firewall)。
故障模拟(择一)
A. DNS 错误:hosts 文件指向错误 IP,观察 curl 连到哪。
B. upstream 宕机:停 Spring Boot,curl https://…/api/tracks 应 502;恢复后正常。
C. 端口暴露:若 ss 见 0.0.0.0:8080,改 server.address=127.0.0.1 并重启(linux-firewall)。
记录每步命令与输出,形成个人 runbook。
与相邻 track 的衔接
| 主题 | 继续学习 |
|---|---|
| HTTP 语义、Cookie、CORS | http-protocol-essentials |
| 域名与证书 | dns-essentials |
| Nginx 配置与 SSL | nginx-essentials |