Skip to content

练习 — 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/ 代理到 upstream
  • location /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:

  1. Nginx 代理 WS 需要哪些 header?
  2. 为何 WS 需要 proxy_read_timeout 调大?
  3. 数字孪生长连接场景的超时建议

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 到 localhost
  • nginx.prod.conf — HTTPS + 安全头 + 限流
  • 文档 diff 说明

练习 3.2 · 子域名规划 ​

要求:

  • api.twin.example.com → Go API
  • app.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

学习导航 ​

上一篇:Linux 运维基础 · 对应知识文档 · 下一篇:CI/CD 与生产部署