概述
在路由详情页除了路由基础信息之外,还可以配置路由策略,当前支持路由级限流、重写、Header配置、跨域、Cookie重写、外部认证授权和熔断等策略配置
限流
当前实现为单机限流,基于时间窗口实现,可以配置时间窗口大小(秒)以及在一个时间窗口内限制的请求数。
重写
重写策略可以实现请求向上游转发请求时重写path和host,配置如下:
配置参数说明如下:
配置 | 说明 |
---|---|
重写路径匹配类型 | 支持精确匹配、前缀匹配和正则匹配,只有路径匹配的请求才会对路径进行重写。 |
重写路径 | 重写的目标路径。 |
重写主机域名 | 重写的目标主机域名。 |
Header配置
Header配置支持对请求和响应的头部做修改,配置如下:
配置参数说明:
配置 | 说明 |
---|---|
开启状态 | 开启时策略才生效。 |
Header类型 | 网关与后端交互时支持对请求和应答的头部做修改。 |
操作类型 | 支持新增、修改、删除操作。 新增:若header key已存在,则在末尾追加header value;否则新增。 修改:若header key不存在,则新增header kv;否则覆盖已有header value值。 删除:若header key存在,则删除;否则忽略该header key。 |
Header Key | 头部Key。 |
Header Value | 头部Value。 |
跨域设置
云原生网关支持路由级别的跨域资源共享(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头部。 |
开启状态 | 开启时才生效。 |
ProxyCookie配置
该配置支持对上游响应Set-Cookie头部重写,当前支持对Set-Cookie头部里的Domain和Path进行重写,具体配置如下:
配置项说明:
配置项 | 说明 |
---|---|
proxy_cookie_domain匹配规则 | 匹配上游应答Set-Cookie头部的Domain字段,支持正则匹配。 |
proxy_cookie_domain替换值 | 如果匹配,Set-Cookie头部Domain字段将被替换成该配置值。 |
proxy_cookie_path匹配规则 | 匹配上游应答Set-Cookie头部的Path字段,支持正则匹配。 |
proxy_cookie_path替换值 | 如果匹配,Set-Cookie头部Path字段将被替换成该配置值。 |
Query参数设置
该配置支持对请求参数进行修改,具体配置如下:
配置项说明:
配置 | 说明 |
---|---|
开启状态 | 开启时策略才生效。 |
操作类型 | 支持新增、修改、删除操作。 新增:若请求参数已存在,则在末尾追加;否则新增。 修改:若请求参数不存在,则新增该参数;否则覆盖已有参数值。 删除:若请求参数存在,则删除;否则忽略该参数。 |
参数名 | 请求参数key。 |
参数值 | 请求参数Value。 |
外部认证授权
该配置支持通过第三方外部服务进行身份认证与授权。当身份认证失败时,可以实现自定义错误或者重定向到认证页面的场景。具体配置如下:
配置项说明
配置 | 说明 |
---|---|
开启状态 | 开启时配置才生效。 |
服务地址 | 设置外部认证服务的地址(例如:https://localhost:9188)。 |
请求方法 | 客户端向认证服务发送请求的方法。当设置为POST时,会将请求体转发给认证服务。 |
转发到认证服务的请求头 | 设置需要由客户端转发给认证服务的请求头。如果没有设置,则只发送如X-Forwarded-XXX的请求头。 |
转发给上游服务的请求头 | 认证通过时,由认证服务转发给上游服务的响应头。如果不设置则不转发任何响应头。 |
转发给客户端的请求头 | 认证失败时,由认证服务向客户端发送的响应头。如果不设置则不转发任何响应头。 |
验证ssl证书 | 当开启时,验证SSL证书,默认开启。 |
认证服务请求超时时间 | 认证服务请求超时时间。 |
长连接超时时间 | 长连接超时时间。 |
熔断设置
该配置支持在触发上游服务不健康状态时进行熔断,从而保护上游业务服务。具体配置如下:
配置项说明
配置 | 说明 |
---|---|
开启状态 | 开启时配置才生效。 |
上游服务健康状态码 | 上游服务处于健康状态时的HTTP状态码。 |
上游服务连续正常请求次数 | 上游服务触发健康状态的连续正常请求次数。 |
上游服务不健康状态码 | 上游服务处于不健康状态时的HTTP状态码。 |
触发异常请求次数 | 上游服务在一定时间内触发不健康状态的异常请求次数。 |
熔断最大持续时间 | 上游服务熔断的最大持续时间,以秒为单位。 |
不健康返回错误码 | 当上游服务处于不健康状态时返回的HTTP错误码。 |
不健康返回响应体信息 | 当上游服务处于不健康状态时返回的HTTP响应体信息。 |
不健康返回响应头信息 | 当上游服务处于不健康状态时返回的HTTP响应头信息。该字段仅在配置了不健康返回响应体信息时才生效。 |