IDE AI 流量正向代理
组织可以将 AISIX 部署在终止 TLS 的出口设备之后,以治理必须继续使用官方服务端点的 IDE 和编码 Agent 流量。本指南以 GitHub Copilot IDE 扩展和 Copilot CLI 为例。AISIX 从该设备接收明文 HTTP 流量,在使用员工凭证将各请求转发到官方上游之前,可以执行访问控制、审计、内容检查和请求限制。
AISIX 不会拦截 TLS,也不会签发证书颁发机构证书。客户端继续使用官方服务端点。流量可以通过显式代理配置或透明拦截到达出口设备;当该设备终止 TLS 时,客户端必须信任该设备的证书颁发机构。
前置条件
请 准备以下内容:
- 一个 AISIX 部署:
- 对于 AISIX Cloud,需要一个已关联网关的环境,以及一个具有写入权限范围的管理员 Token。
- 对于开源 AISIX 网关,需要将网关配置为加载声明式资源文件。
- 一个能够保留原始
Host请求头并注入 HTTP 请求头的 TLS 终止出口设备。 - 在客户端计算机上配置代理和证书信任的权限。
- 最新的 GitHub Copilot 允许列表和 Copilot 网络设置。
curl和jq。本地验证使用pipx安装 mitmproxy。
流量拓扑
客户端将 HTTPS 流量发送到出口设备。该设备终止 TLS,保留原始 Host,注入网关 Key 和员工身份,并将解密后的 HTTP 流量发送到 AISIX。AISIX 移除仅供网关使用的请求头,并通过 HTTPS 使用员工的上游凭证转发请求。
网关接受携带原始 Host 的 origin-form 请求,透明重定向和代理链均使用这种形式。对于代理链传入的 absolute-form 请求目标,URI authority 优先于 Host 请求头。与 hosts 匹配的路由会先于网关自身的类型化路由执行,因此 /v1/messages 等上游路径会被转发 ,而不会由网关的 Messages 端点处理。
选择要检查的主机
URL 重写先于按 Host 分发执行。若需保持转发给上游的路径不变,请使用 hosts 限定针对网关自身端点的规则,避免规则作用于所有主机。
路由示例在路由的 hosts 字段中使用以下值,以检查 Copilot 推理、代码建议和选定的 GitHub API 流量:
hosts:
- api.githubcopilot.com
- "*.individual.githubcopilot.com"
- "*.business.githubcopilot.com"
- "*.enterprise.githubcopilot.com"
- copilot-proxy.githubusercontent.com
- origin-tracker.githubusercontent.com
- api.github.com
这并不是完整的 Copilot 网络允许列表。身份认证、资产、遥测、实验和编辑器特定服务可能会使用其他主机。请对照 GitHub 最新的允许列表检查出口策略,再决定设备将哪些主机发送到 AISIX,以及允许哪些主机直接访问。
api.github.com 由 Copilot 和其他 GitHub 客户端共享。如果设备分流该主机,所有使用此代理的客户端对该主机发出的请求都可能匹配此路由。如果只有选定的 GitHub API 路径需要经过 AISIX,请从路由中移除该主机,或在设备上缩小分流范围。