初始化1

This commit is contained in:
zg
2026-07-16 13:03:11 +08:00
parent 0bdfcbc1c8
commit e6b0f287cc
100 changed files with 12184 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
---
name: session-20260614-1
description: 2026-06-14 第1次会话 — HTTPS OPTIONS跨域修复 + 转发规则编辑弹窗Tab改造转发信息/配置文件/SSL
metadata:
type: session
date: 2026-06-14
sessionNumber: 1
startTime: 2026-06-14T09:00:00+08:00
---
# 2026-06-14 第1次会话
## 会话摘要
修复了 `file.wg.zgitm.com` 的 CORS 跨域问题OPTIONS 预检无 CORS 头),并将转发规则编辑弹窗改为宝塔风格的三 Tab 布局(转发信息/配置文件/SSL新增配置文件在线编辑和 SSL 证书密钥查看功能。
## 关键操作
### 1. HTTPS 模板 OPTIONS 预检 CORS 修复
- **做了什么**: 在 `nginx_service.py` HTTPS_TEMPLATE 的 server 级别添加 CORS add_header`always` 参数),确保 `if ($request_method = OPTIONS) { return 204; }` 拦截时也能带上 CORS 响应头
- **根因**: OPTIONS 请求被 server 级 `if` 拦截返回 204但 CORS add_header 只在 location 块内,没机会执行
- **验证**: 修复前 OPTIONS 返回 `204` 无任何 CORS 头;修复后返回 `access-control-allow-*` 三个头
- **结果**: 已验证通过,模板已修复并部署到 10.1.1.160
### 2. 新增配置文件查看/编辑接口
- **做了什么**: Python API 新增 `GET/PUT /api/nginx/rules/<domain>/config`,后端 Java 新增透传方法,前端编辑弹窗新增"配置文件"Tab
- **GET**: 读取 `/etc/nginx/conf.d/{domain}.conf` 返回原始内容
- **PUT**: 写入配置 → `nginx -t` 语法检查 → 失败自动回滚 → 成功则 reload
- **结果**: Python API 已部署到 10.1.1.160,后端和前端待用户部署
### 3. 新增 SSL 证书/密钥查看接口
- **做了什么**: Python API 新增 `GET /api/nginx/rules/<domain>/ssl`,读取 `.pem``.key` 文件内容返回,前端 SSL Tab 只读显示
- **结果**: Python API 已部署,后端和前端待用户部署
### 4. 编辑弹窗改为 Tab 布局900px 宽)
- **做了什么**: NginxForwarding.vue 弹窗改为 `el-tabs` 三标签页:
- **转发信息**: 协议类型/域名/转发目标原有表单HTTPS 规则不可切换回 HTTP
- **配置文件**: nginx.conf 查看、编辑(黄色背景标识编辑模式)、保存并重载
- **SSL**: 仅 HTTPS 规则显示,证书(PEM)和密钥(KEY)只读查看
- **原因**: 用户要宝塔面板风格的配置编辑体验
- **结果**: 前端代码已改完,待用户构建部署
## 涉及文件
### Python API已部署到 10.1.1.160:/opt/nginx-api/
| 文件 | 操作 | 说明 |
|------|------|------|
| `services/nginx_service.py` | 改 | HTTPS_TEMPLATE server 级加 CORS add_header |
| `app.py` | 改 | 新增 config 查看/编辑 + SSL 查看接口 |
### 后端 Java待用户部署
| 文件 | 操作 | 说明 |
|------|------|------|
| `service/PythonApiClient.java` | 改 | 新增 getRuleConfig/updateRuleConfig/getSslFiles |
| `service/ForwardingRuleService.java` | 改 | 新增 getConfig/updateConfig/getSslFiles |
| `controller/ForwardingRuleController.java` | 改 | 新增 GET/PUT /{id}/config + GET /{id}/ssl |
### 前端 Vue待用户部署
| 文件 | 操作 | 说明 |
|------|------|------|
| `api/nginxApi.js` | 改 | 新增 getRuleConfig/updateRuleConfig/getRuleSslFiles |
| `views/NginxForwarding.vue` | 重写弹窗 | Tab 布局(转发信息/配置文件/SSL |
## 重要信息
### 服务器架构(本次确认)
- **10.1.1.160**: Nginx 反向代理 + Python API (`/opt/nginx-api/`, systemd: `nginx-api`)
- **10.1.1.170**: Mokee Gateway (9000端口) + 前端静态文件 (`/opt/mokee/web/`, 通过 docker-proxy 3002 暴露) + 部署服务 (4003端口)
- **10.1.1.160 上的域名配置**: /etc/nginx/conf.d/ 下各 .conf 文件
- **10.1.1.160 SSL 证书目录**: /etc/nginx/ssl/{domain}.pem + {domain}.key
### SSH 连接方式
- 10.1.1.160: root / mokee. (需密码,通过 Python paramiko
- 10.1.1.170: root / mokee. (需密码,通过 Python paramiko
### Python 远程操作
- Python 路径: `C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe`
- 使用 paramiko 连接 SSHpymysql 连接 MySQL
## 待处理
- [ ] 用户自行部署 Java 后端和 Vue 前端
- [ ] 验证前端 Tab 布局弹窗完整功能