13 Commits

Author SHA1 Message Date
d81d3362af perf: 优化 SSL 管理器性能,使用 HTTP 连接复用
主要优化:
- HTTP 连接复用:使用 requests.Session() 复用连接,减少连接开销
  - 所有 API 调用现在使用同一个 session
  - 减少 TCP 连接建立和 TLS 握手开销

- 代码清理:
  - 移除未使用的导入(base64, timedelta)
  - 移除重复的 headers 参数(已在 session 中设置)

- 性能提升:
  - 减少每次 API 调用的开销
  - 特别是在频繁调用时(如证书续期、批量操作)效果明显

这些优化提升了 SSL 管理器的整体性能,特别是在处理多个证书操作时。
2026-01-01 20:00:01 +00:00
b30fafd34f perf: 优化路由监听服务性能,减少 API 调用
主要优化:
- 性能优化:只调用一次 get_all_ssls() API,在内存中构建域名集合进行快速查找
  - 之前:N 个域名 = N 次 API 调用
  - 现在:N 个域名 = 1 次 API 调用
  - 性能提升:从 O(N×M) 降低到 O(N+M)

- HTTP 连接复用:使用 requests.Session() 复用连接,减少连接开销

- 代码重构:
  - 提取 _fetch_apisix_data() 公共方法,减少重复代码
  - 提取 _is_valid_domain() 方法,改进 IP 地址检测(支持 IPv4/IPv6)
  - 提取 _build_ssl_domains_set() 方法,构建 SSL 域名集合

- IP 地址检测改进:使用 ipaddress 模块,更准确地检测 IPv4 和 IPv6

这些优化显著提升了服务性能,特别是在处理大量路由和域名时。
2026-01-01 19:58:16 +00:00
7c464126a9 fix: 修复 f-string 语法错误
- 修复 f-string 中表达式解析错误
- 将计算移到 f-string 外面,避免语法错误
- 修复前: {len(additional_domains)} + 1} (语法错误)
- 修复后: total_domains = len(additional_domains) + 1; {total_domains}
2026-01-01 19:40:38 +00:00
cd346ec94b feat: 优化证书申请逻辑,同一路由的多个域名合并到一个证书
- 按路由处理域名,而不是按域名处理
- 同一路由中的多个域名合并到一个证书申请(使用 SAN)
- 减少证书数量,简化管理
- 符合最佳实践:一个证书包含多个相关域名

优势:
- 减少证书数量(从 N 个减少到 1 个)
- 减少续期次数
- 降低 Let's Encrypt API 调用频率
- 简化证书管理

示例:
- 路由包含 jingrowtools.cn 和 www.jingrowtools.cn
- 现在会申请一个包含两个域名的证书(SAN)
- 而不是分别申请两个独立证书
2026-01-01 19:38:34 +00:00
cac12f50bd chore: 从 git 跟踪中移除 __pycache__ 文件
- 移除已跟踪的 Python 缓存文件
- .gitignore 中已包含 __pycache__/ 规则,以后不会再跟踪这些文件
2026-01-01 19:33:47 +00:00
7198a1376b refactor: 优化路由监听服务,移除已处理域名列表
- 移除 processed_domains 状态管理,改为直接检查 APISIX 实际 SSL 配置
- 简化代码逻辑,提高可靠性
- 修复 SSL 配置查找时的类型错误(key 字段是字符串而非字典)
- 添加路由状态检查,跳过禁用的路由(status=0)

优势:
- 更简单:无需维护状态文件
- 更准确:直接检查实际配置,避免状态不一致
- 更可靠:即使证书被删除,也能自动检测并重新申请
2026-01-01 19:32:58 +00:00
3a37cc6e14 删除ssl_manager冗余文件 2026-01-01 19:28:19 +00:00
2421089e68 添加了路由状态检查,跳过禁用路由 2026-01-01 18:43:06 +00:00
5bd9e95e15 ssl_manager增加支持额外域名 2026-01-01 18:28:10 +00:00
88f5127d9b 优化ssl自动化功能 2026-01-01 17:12:14 +00:00
7d885471c0 增加ssl_manager功能实现创建路由时自动申请并续期ssl免费证书,测试成功 2026-01-01 15:21:37 +00:00
8c8e8dc8e8 更新etcd docker镜像标签 2025-12-25 17:03:54 +00:00
a45b9e0902 初始提交 2025-06-16 13:40:33 +08:00