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

95 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: session-20260621-2
description: 2026-06-21 第2次会话 — DNS解析API从10.1.1.160迁移至101.132.183.138:32210
metadata:
type: session
date: 2026-06-21
sessionNumber: 2
startTime: 2026-06-21T03:45:00+08:00
endTime: 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
- **端口**: 32210HTTP
- **结果**: 服务正常运行健康检查通过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.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 服务