================================================================================
  阿里云多服务 Docker 部署方案 - 2026年5月14日
================================================================================

一、服务器信息
--------------------------------------------------------------------------------
  公网 IP:   8.136.137.59
  域名:      dxz99wyr.cn
  系统:      Ubuntu 5.15.0-174-generic
  SSH密钥:   D:\003_Project\小程序连接.pem
  项目路径:  /opt/ALiYunManager

二、架构设计
--------------------------------------------------------------------------------
                    阿里云服务器 (8.136.137.59)
                         │
                    beian-nginx (:80)           ← 现有，已在运行
                         │
                         ├── api-miniapp.dxz99wyr.cn → main-nginx (:8080)
                         │                                  │
                         │                           主 Nginx (Docker)
                         │        ┌──────────┬──────────┬──────────┐
                         │        │          │          │          │
                         │   resume.    miniapp.  api-resume.  api-miniapp.
                         │  dxz99wyr.  dxz99wyr. dxz99wyr.cn  dxz99wyr.cn
                         │     cn         cn         │          │
                         │                          (占位)   host.docker.
                         │                                   internal:3000
                         │                                        │
                         │                              quanyixiaozhushou-app
                         │                              (小程序后端, 3000端口)
                         │
                         └── /quanyi → 静态页面 (原有服务)

三、子域名规划
--------------------------------------------------------------------------------
  域名                      用途              当前状态
  ─────────────────────────────────────────────────────────
  resume.dxz99wyr.cn        个人简历网站       占位页面已部署
  miniapp.dxz99wyr.cn       小程序网站         占位页面已部署
  api-resume.dxz99wyr.cn    个人简历后台       占位页面已部署
  api-miniapp.dxz99wyr.cn   小程序后台         已接入真实后端 (3000)

  DNS 解析: 以上4个子域名 A 记录均指向 8.136.137.59

四、Docker 容器
--------------------------------------------------------------------------------
  容器名                    端口映射                  说明
  ─────────────────────────────────────────────────────────
  beian-nginx              80:80, 443:443          现有，80入口
  quanyixiaozhushou-app    3000:3000               小程序后端
  quanyixiaozhushou-mongo  27018:27017             MongoDB
  main-nginx               8080:80, 8443:443       主 Nginx (新)
  resume-web               80 (内部)               简历网站占位
  miniapp-web              80 (内部)               小程序网站占位
  resume-api               80 (内部)               简历后台占位
  miniapp-api              80 (内部)               小程序后台占位

  Docker 网络: aliyun-app-network (bridge)
  beian-nginx 在 beian-docker_default 网络

五、访问链路
--------------------------------------------------------------------------------
  小程序后端:
    用户 → api-miniapp.dxz99wyr.cn (DNS)
         → beian-nginx (:80)
         → main-nginx (:8080)
         → host.docker.internal:3000 (本地回环)
         → quanyixiaozhushou-app (:3000)

  简历网站:
    用户 → resume.dxz99wyr.cn → beian-nginx (:80) → main-nginx (:8080) → resume-web (:80)

  简历后台:
    用户 → api-resume.dxz99wyr.cn → beian-nginx (:80) → main-nginx (:8080) → resume-api (:80)

  ⚠ 注：beian-nginx 目前只配了 api-miniapp 的中转，
        其他三个子域名还未配置中转，后续需要补充。

六、配置文件位置
--------------------------------------------------------------------------------
  项目目录: /opt/ALiYunManager/
  ├── docker-compose.yml                      完整部署配置
  ├── docker-compose.main-nginx-only.yml      仅主 Nginx
  ├── docker-compose.override.yml             开发覆盖
  ├── .env / .env.example                     环境变量 (端口8080)
  ├── nginx/
  │   ├── nginx.conf                          主 Nginx 核心配置
  │   └── conf.d/
  │       ├── resume-web.conf                 简历网站反向代理
  │       ├── miniapp-web.conf                小程序网站反向代理
  │       ├── resume-api.conf                 简历后台反向代理
  │       ├── miniapp-api.conf                小程序后台反向代理 (→3000)
  │       ├── ssl-template.conf               HTTPS 模板
  │       └── port-based-example.conf         端口模式示例
  └── services/
      ├── resume-web/      (前端占位)
      ├── miniapp-web/     (前端占位)
      ├── resume-api/      (后端占位)
      └── miniapp-api/     (后端占位)

  beian-nginx 配置: /opt/beian-docker/nginx.conf
  beian-nginx 备份: /opt/beian-docker/nginx.conf.bak

七、beian-nginx 中转配置要点
--------------------------------------------------------------------------------
  - 添加了 server 块监听 api-miniapp.dxz99wyr.cn
  - 反向代理到 172.19.0.1:8080 (Docker 网关 = 宿主机)
  - 保留原有的 default_server 和 /quanyi 路径
  - master nginx 模板路径: /opt/beian-docker/nginx.conf → /etc/nginx/conf.d/default.conf

八、端口说明
--------------------------------------------------------------------------------
  端口    开放给外网    用途
  ─────────────────────────────────────
  22      是           SSH
  80      是           HTTP 入口 (beian-nginx)
  443     是           HTTPS 入口 (beian-nginx)
  3000    否 (已关闭)  小程序后端 (仅本地回环访问)
  8080    否           主 Nginx (内部)
  8443    否           主 Nginx HTTPS (内部)

九、常用命令
--------------------------------------------------------------------------------
  # 部署/管理
  docker compose up -d                         启动所有服务
  docker compose down                          停止所有服务
  docker compose restart nginx                 重启主 Nginx
  docker compose exec nginx nginx -s reload    重载配置 (不重启)
  docker compose ps                            查看服务状态
  docker compose logs -f nginx                 查看日志

  # beian-nginx
  docker exec beian-nginx nginx -t             测试配置
  docker exec beian-nginx nginx -s reload      重载配置

  # 单个服务更新
  ./scripts/update-service.sh resume-web

十、后续需要完成的工作
--------------------------------------------------------------------------------
  1. [ ] beian-nginx 补充剩下 3 个子域名的中转配置
        (resume, miniapp, api-resume)
  2. [ ] 各服务替换占位页面为真实代码
  3. [ ] 配置 HTTPS (Certbot + SSL证书)
  4. [ ] 申请 SSL 证书覆盖 4 个子域名
  5. [ ] 配置日志轮转 (logrotate)
  6. [ ] 阿里云 DNS: 确认 4 个子域名 A 记录都已添加

十一、重要提醒
--------------------------------------------------------------------------------
  - 主 Nginx (main-nginx) 当前在 8080 端口，不对外网开放
  - 3000 端口已关闭外网访问，只走本地回环，更安全
  - 各服务容器内部始终用 80 端口，添加新服务不需要改端口
  - beian-nginx 配置修改前记得备份 (已有 .bak)
  - 所有脚本已添加执行权限

================================================================================
  记录时间: 2026-05-14 21:35
================================================================================
