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.txt(flask 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)
- 端口: 32210(HTTP)
- 结果: 服务正常运行,健康检查通过,DNS 记录查询正常
3. 修改 Java 后端配置
- application.yml:
python-api.base-url 从 http://10.1.1.160:5000 → http://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.170,docker 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 环境变量修改) |
当前架构
数据库地址变更(未完成)
- 用户要求将数据库从 10.1.1.122 改为 10.20.1.122
- 问题: 10.20.1.122 从 10.1.1.170(Docker 主机)ping 不通,3306 端口不可达
- 处理: 已回滚,仍使用 10.1.1.122
- 待办: 网络/防火墙打通后再次修改并部署
涉及文件清单
| 文件 |
操作 |
说明 |
dns-api/app.py |
新建 |
精简版 Flask DNS API(4个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 |
无净变更 |
数据库地址改了又回滚 |
待处理