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-IPX-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-OptionsX-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 与生产部署