Files
nginxserver/memory/session-20260621-2.md
2026-07-16 13:03:11 +08:00

4.6 KiB
Raw Permalink Blame History

name, description, metadata
name description metadata
session-20260621-2 2026-06-21 第2次会话 — DNS解析API从10.1.1.160迁移至101.132.183.138:32210
type date sessionNumber startTime endTime
session 2026-06-21 2 2026-06-21T03:45:00+08:00 2026-06-21T04:00:00+08:00

2026-06-21 第2次会话

会话摘要

将 DNS 解析 Python API 从 10.1.1.160:5000 迁移至 101.132.183.138:32210。创建了精简版独立 DNS API去掉了 Nginx/SSL 依赖),通过 systemd 部署到 138 上Java 后端改指新地址,已编译部署到 Docker。全链路验证通过。

关键操作

1. 创建独立 DNS Python API

  • 做了什么: 新建 dns-api/ 目录,包含 4 个文件:app.py(精简 Flask仅 DNS 路由+健康检查)、dns_service.py(复制自原项目,零依赖改动)、requirements.txtflask 2.0.3 + gunicorn 20.1.0,兼容 Python 3.6)、gunicorn_config.py(端口 32210
  • 原因: 10.1.1.160 将停用138 上只需要 DNS 功能,不需要 Nginx/SSL 管理
  • 关键改动: zone 默认值从 ssl_service.get_le_root_domain() 改为环境变量 DNS_DEFAULT_ZONE(默认 zgitm.com彻底解除对 ssl_service 的依赖
  • 结果: 4 个文件已上传至 138

2. 部署 DNS API 到 101.132.183.138

  • 做了什么: SSH 到 138安装依赖flask 2.0.3 + gunicorn 20.1.0,适配 Python 3.6.8),创建 systemd 服务 /etc/systemd/system/dns-api.service,设置开机自启
  • 阿里云 AK: LTAI5t98jUxLUadZM1LkaSa8 / K2HyLLXizAgvOMOa0Mzc7ebs4gbAZs(从 160 systemd 文件获取,已写入 138 服务 Environment
  • 端口: 32210HTTP
  • 结果: 服务正常运行健康检查通过DNS 记录查询正常

3. 修改 Java 后端配置

  • application.yml: python-api.base-urlhttp://10.1.1.160:5000http://101.132.183.138:32210
  • 原因: Java 通过 RestTemplate rootUri 自动拼接路径,只需改配置
  • 无需改动: RestTemplateConfig.java、PythonApiClient.java、DnsRecordService.java、DnsController.java、前端任何文件

4. 编译部署 Java 后端

  • 编译: mvn clean package -Pprod -DskipTests → BUILD SUCCESS
  • 部署: JAR 上传到 10.1.1.170docker cp 到 nginx-server-nginx-server:/app/app.jar重启容器
  • 结果: 服务正常启动API 响应正常

5. 全链路验证

  • 列表查询: 通过 Java → 138:32210 → 阿里云,记录正常返回(含审计字段)
  • 添加测试: verify-dns-migration.zgitm.com 创建成功record_id 返回正确
  • 删除测试: 测试记录已清理,列表确认已删除
  • 结果: DNS 添加/删除/列表 全链路通过

重要信息

新 DNS API 部署信息

项目 详情
服务器 101.132.183.138
端口 32210
协议 HTTP
Python 版本 3.6.8
服务名 dns-api
目录 /opt/dns-api/
启动 systemctl start dns-api
日志 journalctl -u dns-api
环境变量 Ali_Key, Ali_Secret, DNS_DEFAULT_ZONE=zgitm.com
默认 zone zgitm.com可通过 DNS_DEFAULT_ZONE 环境变量修改)

当前架构

Vue前端 → Mokee Gateway → Java后端(10.1.1.170:4002)
                              ↓ DnsRecordService
                              ↓ PythonApiClient
                              ↓ RestTemplate rootUri: http://101.132.183.138:32210
                              ↓
                          Python Flask (101.132.183.138:32210)
                              ↓ dns_service.py → 阿里云 DNS API (alidns.aliyuncs.com)

数据库地址变更(未完成)

  • 用户要求将数据库从 10.1.1.122 改为 10.20.1.122
  • 问题: 10.20.1.122 从 10.1.1.170Docker 主机ping 不通3306 端口不可达
  • 处理: 已回滚,仍使用 10.1.1.122
  • 待办: 网络/防火墙打通后再次修改并部署

涉及文件清单

文件 操作 说明
dns-api/app.py 新建 精简版 Flask DNS API4个DNS路由+健康检查)
dns-api/dns_service.py 新建 阿里云DNS服务核心复制自原项目
dns-api/requirements.txt 新建 flask==2.0.3, gunicorn==20.1.0 (Python 3.6兼容)
dns-api/gunicorn_config.py 新建 端口32210
application.yml 改1行 python-api.base-url → 101.132.183.138:32210
application-qa.yml 无净变更 数据库地址改了又回滚
application-prod.yml 无净变更 数据库地址改了又回滚

待处理

  • 数据库地址 10.1.1.122 → 10.20.1.122(需网络打通 / 连得上数据库)
  • 160 机器停用后清理旧 nginx-api 服务