操作步骤
登录云原生API网关控制台,在顶部菜单栏选择资源池。
在左侧导航栏,选择 "AI网关-实例" ,进入目标实例概览。
在左侧导航栏,选择"Agent API",进入目标API概览。
选择策略与插件页签,单击 "启用策略/插件"。
在启用策略/插件面板中,选择策略或插件进行配置。
策略配置
限流
当前实现为单机限流,基于时间窗口实现,可以配置时间窗口大小(秒)以及在一个时间窗口内限制的请求数。
| 配置 | 说明 |
|---|---|
| 时间窗口 | 进行限流统计的时间窗口 |
| 限制请求 | 时间窗口内允许的最大请求次数,超出的请求将会被拒绝 |
跨域设置
云原生网关支持路由级别的跨域资源共享(CORS)。
CORS配置说明如下:
| 配置项 | 说明 |
|---|---|
| 允许访问的来源 | 作用于Access-Control-Allow-Origin头部,格式如:scheme://host:port,比如: https://foo.ctyun.com:8080,多个值使用','分割,'*'表示所有Origin均允许通过 |
| 允许的方法 | 作用于Access-Control-Allow-Methods头部,表示允许的访问方法 |
| 允许的请求头部 | 作用于Access-Control-Allow-Headers头部,允许跨域访问时请求方携带哪些CORS规范以外的Header,多个值使用','分割,'*'来表示所有Header均允许通过 |
| 允许的响应头部 | 作用于Access-Control-Expose-Headers头部,允许浏览器和js脚本访问的响应头部 |
| 允许携带凭证 | 作用于Access-Control-Allow-Credentials头部 |
| 预检的过期时间 | 作用于Access-Control-Max-Age头部 |
| 开启状态 | 开启时才生效 |
外部认证授权
该配置支持通过第三方外部服务进行身份认证与授权。当身份认证失败时,可以实现自定义错误或者重定向到认证页面的场景。
配置项说明:
| 配置 | 说明 |
|---|---|
| 开启状态 | 开启时配置才生效 |
| 服务地址 | 设置外部认证服务的地址(例如:https://localhost:9188) |
| 请求方法 | 客户端向认证服务发送请求的方法。当设置为POST时,会将请求体转发给认证服务 |
| 转发到认证服务的请求头 | 设置需要由客户端转发给认证服务的请求头。如果没有设置,则只发送如X-Forwarded-XXX的请求头 |
| 转发给上游服务的请求头 | 认证通过时,由认证服务转发给上游服务的响应头。如果不设置则不转发任何响应头 |
| 转发给客户端的请求头 | 认证失败时,由认证服务向客户端发送的响应头。如果不设置则不转发任何响应头 |
| 验证ssl证书 | 当开启时,验证SSL证书,默认开启 |
| 认证服务请求超时时间 | 认证服务请求超时时间 |
| 长连接超时时间 | 长连接超时时间 |
熔断设置
该配置支持在触发上游服务不健康状态时进行熔断,从而保护上游业务服务。
配置项说明:
| 配置 | 说明 |
|---|---|
| 开启状态 | 开启时配置才生效 |
| 上游服务健康状态码 | 上游服务处于健康状态时的HTTP状态码 |
| 上游服务连续正常请求次数 | 上游服务触发健康状态的连续正常请求次数 |
| 上游服务不健康状态码 | 上游服务处于不健康状态时的HTTP状态码 |
| 触发异常请求次数 | 上游服务在一定时间内触发不健康状态的异常请求次数 |
| 熔断最大持续时间 | 上游服务熔断的最大持续时间,以秒为单位 |
| 不健康返回错误码 | 当上游服务处于不健康状态时返回的HTTP错误码 |
| 不健康返回响应体信息 | 当上游服务处于不健康状态时返回的HTTP响应体信息 |
| 不健康返回响应头信息 | 当上游服务处于不健康状态时返回的HTTP响应头信息,该字段仅在配置了不健康返回响应体信息时才生效 |
黑白名单
云原生网关支持通过配置IP黑名单和白名单的方式限制客户端访问网关;黑白名单不能同时开启,同时只有一种能生效。
云原生网关默认读取请求中的Remote_addr字段值作为客户端IP(即网络层IP);如果您的客户端访问出口存在七层代理,此时Remote_addr字段值为出口代理地址,可通过开启从xff头部获取IP配置选项,从X-Forwarded-For字段中获取客户端真实IP。
| 配置 | 说明 |
|---|---|
| 是否从xff头部获取IP | 是否从X-Forwarded-For字段中获取客户端真实IP |
| 黑名单 | 黑名单IP配置 |
| 白名单 | 白名单IP配置 |
防重放
防止攻击者重复发送已截获的合法请求,避免重复操作或数据异常。
开启后,请求头必须包含x-ca-timestamp和x-ca-nonce参数。
| 配置 | 说明 |
|---|---|
| 时间窗口 | 时间窗口内不可重复请求,请求时间超过时间窗口为无效请求 |
插件配置
单击添加插件页签。
在快捷导航处,选择要安装的插件类型或者搜索插件名称,单击插件卡片:
如果插件未安装,在安装插件的弹出框中单击安装,在启用插件的弹框中配置插件规则,并选择启用状态。
如果插件已安装,在启用插件的弹框中,配置插件规则,并选择启用状态。
单击确定,返回"策略与插件"页面,可以查看API的插件启用状态。