外观
练习 — Nginx · HTTPS · DNS
对应知识点:
Nginx·HTTPS·DNS· 反向代理 对应文档:docs/phase-08-deployment/nginx-https-dns.md代码目录:workspace/phase-08/nginx/
前置条件:有可公网访问或本地模拟的 Linux 服务器。
Level 1 — 基础
练习 1.1 · Nginx 反向代理
在 workspace/phase-08/nginx/ 创建配置:
要求:
upstream twin_api { server 127.0.0.1:8080; }location /api/代理到 upstreamlocation /ws支持 WebSocket Upgrade 头- 传递
X-Real-IP、X-Forwarded-For
练习 1.2 · 静态资源
要求:
location /服务 Vue 构建产物(/var/www/twin-web)- API 与静态分离路由
- 模拟 Web3D 前端 + Go API 同域部署
练习 1.3 · 理解 WebSocket 代理
不运行代码,回答并写入 notes-nginx-ws.md:
- Nginx 代理 WS 需要哪些 header?
- 为何 WS 需要
proxy_read_timeout调大? - 数字孪生长连接场景的超时建议
Level 2 — 应用
练习 2.1 · Let's Encrypt HTTPS
要求:
- 域名 A 记录指向服务器(或 hosts 模拟)
- certbot 申请证书:
certbot --nginx -d twin.example.com - HTTP 自动跳转 HTTPS
- 文档证书续期 cron
练习 2.2 · TLS 安全头
要求:
- 添加
Strict-Transport-Security X-Content-Type-Options、X-Frame-Options- 说明 Web3D 页面 iframe 嵌入时的 CORS/Frame 策略
练习 2.3 · 限流
要求:
limit_req_zone对/api/限流- WS 连接可单独
limit_conn - 注释 AGV 高频遥测 API 的限流阈值考量
Level 3 — 综合
练习 3.1 · 多环境配置
要求:
nginx.dev.conf— 本地 HTTP,proxy 到 localhostnginx.prod.conf— HTTPS + 安全头 + 限流- 文档 diff 说明
练习 3.2 · 子域名规划
要求:
api.twin.example.com→ Go APIapp.twin.example.com→ Vue 静态ws.twin.example.com→ WebSocket(或同域 /ws)- DNS 记录表 + Nginx server_name 配置
Level 4 — 项目实践
练习 4.1 · 数字孪生生产入口
在 workspace/phase-08/nginx/ 完成:
要求:
- 完整 Nginx 配置:HTTPS、API 反代、WS 反代、静态前端
- docker-compose 可选加入 nginx 服务
- README:DNS 配置步骤、certbot 命令、验证清单
- curl 验证 API,wscat/浏览器验证 WSS
- 绘制请求路径:浏览器 → Nginx → Go → PostgreSQL/Redis
学习检查
- [ ] 反向代理与负载均衡的区别?
- [ ] HTTPS 终止在 Nginx 时 Go 如何感知客户端 IP?
- [ ] WS 与 HTTP/2 多路复用的关系?
- [ ] DNS TTL 对切换服务器的影响?
提交方式
检查答案 — nginx https dns 练习 X.X