name, description, metadata
| name |
description |
metadata |
| session-20260614-1 |
2026-06-14 第1次会话 — HTTPS OPTIONS跨域修复 + 转发规则编辑弹窗Tab改造(转发信息/配置文件/SSL) |
| type |
date |
sessionNumber |
startTime |
| session |
2026-06-14 |
1 |
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 连接 SSH,pymysql 连接 MySQL
待处理