diff --git a/xiaoqu-agent-service/README.md b/xiaoqu-agent-service/README.md index 3e445b6..8dbf1c8 100644 --- a/xiaoqu-agent-service/README.md +++ b/xiaoqu-agent-service/README.md @@ -128,6 +128,15 @@ cp deploy/.env.example deploy/.env.dev # 填写 dev 凭据(已 gitignore, - `.env.dev` 只需管理员引导和 Flyway 开关;数据库/Redis 已走配置文件。日志在 `logs/agent-service.log`,pid 在 `deploy/app.pid`。 - 注意应用启动较慢(多数据源初始化,约 60-90s),脚本健康检查窗口已放宽到 180s。 +### 生产部署(prd,HTTPS 已于 2026-09-11 上线) + +- 服务器:SSH 别名 `xiaoqu-prd`(123.57.245.202,Rocky 8),部署目录 `/data/xiaoqu-agent-service`(jar、`app.env`、`logs/`、`app.pid`)。连接参数在 `deploy/remote.conf`(已 gitignore)。 +- 发布:`./deploy/deploy.sh remote-deploy`(本地构建 → 上传 → 远程停旧起新 → 健康检查);只重启用 `remote-restart`。 +- 对外地址:MCP 端点 `https://agent.ququclean.com/mcp`,管理后台 `https://agent.ququclean.com/`。 +- TLS 由 Nginx 终结(配置 `/etc/nginx/conf.d/agent.ququclean.com.conf`,转发 `127.0.0.1:8088`):`/mcp` 单独 location,`proxy_buffering off` + 1 小时读写超时(SSE 流式必需);全站传递 `X-Real-IP` / `X-Forwarded-For` / `X-Forwarded-Proto`;80 端口 301 跳 HTTPS;firewalld 已永久放行 http/https。 +- 证书:阿里云一年期 DV 证书(DigiCert),文件在 `/etc/nginx/ssl/agent.ququclean.com/`(pem 644 / key 600),**2027-03-11 到期,无自动续期**。到期前在阿里云重新申请下载,替换这两个文件后 `nginx -s reload`。 +- prd 的 `app.env` 相比 dev 必须多出两项:`ADMIN_COOKIE_SECURE=true`(会话 cookie 仅经 HTTPS 下发)、`SERVER_FORWARD_HEADERS_STRATEGY=framework`(认 X-Forwarded 头,审计 `client_ip` 才能取到真实来源 IP,否则全是 127.0.0.1)。 + ## 测试 ak(仅 dev) 仓库不提供固定 ak。每位开发者在本地生成随机 ak,只把 SHA-256 写入 `agent_api_key`,再用 `token_scope` 关联需要的作用域;明文只保存在本机客户端配置(如 `.kimi-code/mcp.json`,已 gitignore)中,不提交版本库。仓库历史中曾出现的 dev ak 必须视为已泄露并在数据库中禁用。 @@ -173,7 +182,7 @@ agent.list.query 抽测:channel_no='D' + province='北京市' → 总部 11 / ## 客户端接入(dev 阶段裸跑 HTTP) -dev 服务地址示例:`http://192.168.4.236:8088/mcp`(本机内网 IP;本机自测可用 localhost)。生产必须 HTTPS(Nginx 终结 TLS)。 +dev 服务地址示例:`http://192.168.4.236:8088/mcp`(本机内网 IP;本机自测可用 localhost)。生产地址 `https://agent.ququclean.com/mcp`(Nginx 终结 TLS,部署细节见上文「生产部署」)。 **Kimi Code** — 项目级 `.kimi-code/mcp.json`(ak 明文直写;该文件已加入 `.gitignore`,不会提交版本库): diff --git a/xiaoqu-agent-service/doc/agent-mcp-service-design.md b/xiaoqu-agent-service/doc/agent-mcp-service-design.md index d4e9fab..b91e0b7 100644 --- a/xiaoqu-agent-service/doc/agent-mcp-service-design.md +++ b/xiaoqu-agent-service/doc/agent-mcp-service-design.md @@ -106,14 +106,14 @@ xiaoqu-ai Android/iOS/Web ─► Gateway/Agent ─────┤ ### 5.1 MCP(主形态) -- Streamable HTTP 传输,端点 `https://mcp.<域名>/mcp`。 +- Streamable HTTP 传输,端点 `https://agent.ququclean.com/mcp`(生产,2026-09-11 上线,Nginx 终结 TLS)。 - 客户端配置(Kimi Code `~/.kimi-code/mcp.json` 或项目级 `.kimi-code/mcp.json`,ak 明文直写;项目级文件已加入 `.gitignore`): ```json { "mcpServers": { "xiaoqu": { - "url": "https://mcp.<域名>/mcp", + "url": "https://agent.ququclean.com/mcp", "headers": { "Authorization": "Bearer " } @@ -122,7 +122,7 @@ xiaoqu-ai Android/iOS/Web ─► Gateway/Agent ─────┤ } ``` -- Claude Code:`claude mcp add --transport http xiaoqu https://mcp.<域名>/mcp --header "Authorization: Bearer "`。 +- Claude Code:`claude mcp add --transport http xiaoqu https://agent.ququclean.com/mcp --header "Authorization: Bearer "`。 - ak 明文只出现在服务端签发/ensure 响应和运行时;服务端保存 SHA-256 哈希及 AES-GCM 加密密文(二次获取用),含 ak 的客户端配置文件不得提交版本库。 ### 5.2 Web 管理后台(四个页面)