|
|
03b8b52315
|
fix(registrar): 标签按行拼接避免逗号拆分;默认启用 TCP TLS;新增 TLS_MODE
Build and Push to ACR / docker (push) Successful in 3m49s
- 修复 ConsulCatalog 标签因逗号分割导致的解析错误:
「error parsing server URL ... : invalid port ':9009,'」
现在改为按“行”累加标签,再转换为 JSON 数组,避免值中逗号(如 middlewares)被错误拆分
- TCP 路由默认启用 TLS(terminating),补齐 tls=true / tls.certresolver
修复「HostSNI(...) but no TLS on router」
- 新增 TLS_MODE=terminating|passthrough|plaintext 三种模式
- 统一使用 loadbalancer.server.port(替代 server.url),规避尾逗号风险
- 提供严格的 to_json_array 实现,避免尾逗号 JSON 问题
- HTTP 路由补充 priority=10000;保留可选中间件(需与动态配置名称一致)
Test plan:
- 清理旧服务并重注册:
curl -s http://100.64.0.1:8500/v1/agent/services \
| jq 'to_entries[] | select(.value.Service=="mcp") | .key' \
| xargs -I{} curl -s -X PUT http://100.64.0.1:8500/v1/agent/service/deregister/{}
然后重启注册器容器
- 验证 Traefik 路由:
curl -s http://localhost:8083/api/tcp/routers \
| jq '.[] | select(.rule|test("ci-agent\\.jmsu\\.top")) | {name,entryPoints,tls}'
- 验证证书握手:
openssl s_client -connect ci-agent.jmsu.top:4443 -servername ci-agent.jmsu.top -brief </dev/null
Refs:
- invalid port ":9009,"
- HostSNI(...) but no TLS on router
|
2025-10-03 14:52:04 +08:00 |
|