微服务网关的Kong类型网关完全兼容开源Kong网关的所有策略,如路由、负载均衡、流量控制、安全和日志策略等。为了帮助您更好的配置策略,本文对各种策略的配置进行说明。

路由-KONG_ROUTE

每个路由都与一个服务关联,一个服务可能具有多个与其关联的路由。路由策略中定义规则以匹配客户端请求,匹配到路由策略的请求都将被转发到其关联的服务。

此处仅介绍KONG_ROUTE策略的关键属性,更多关于KONG_ROUTE策略的介绍请参见Route Object

表 1. 关键属性说明
属性 描述
name 路由的名称。
protocols 允许的协议列表,默认值为httphttps
methods 允许的HTTP请求方法,默认值为GETPOST
hosts 匹配的域名列表。
paths 配的路径列表。
headers 匹配的请求头列表。
service 关联的服务。

负载均衡-KONG_LOADBALANCE

通过此策略可以实现多个请求的负载均衡处理。

此处仅介绍KONG_LOADBALANCE策略的关键属性,更多关于KONG_LOADBALANCE策略属性介绍请参见Upstream Object

表 2. 关键属性说明
属性 描述
services.name 服务名。
services.host 服务所在IP地址或者域名,也可已设置为关联服务的服务名称。
upstreams.name 设置为关联服务的服务名称。

安全-KONG_CORS

通过此策略可以实现将跨域资源共享添加到路由。

此处仅介绍KONG_CORS策略的关键属性,更多关于KONG_CORS策略属性介绍请参见CORS

表 3. 关键属性说明
属性 描述
name 插件名称,固定为cors
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.origins 允许的域列表,如果允许所有来源,此属性配置为通配符(*)。
config.methods 允许的HTTP请求方式,默认为GETPOST
config.headers 允许的请求头。

安全-KONG_IP_RESTRICTION

通过此策略可以实现允许或拒绝IP地址对路由的访问,支持IPv4和IPv6网段。

此处仅介绍KONG_IP_RESTRICTION策略的关键属性,更多关于KONG_IP_RESTRICTION策略属性介绍请参见IP Restriction

表 4. 关键属性说明
属性 描述
name 插件名称,固定为ip-restriction
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.allow 允许访问的IP或者网段。
说明 允许属性和拒绝属性两者至少配置一项。
config.deny 拒绝访问的IP或者网段。
说明 允许属性和拒绝属性两者至少配置一项。

流量控制-KONG_PROXY_CACHE

通过此策略实现反向代理缓存,根据配置的响应码、内容类型和请求方法来缓存响应实体。缓存实体将存储一段可配置的时间,在此之后。对同一资源的请求将重新获取并存储。

此处仅介绍KONG_PROXY_CACHE策略的关键属性,更多关于KONG_PROXY_CACHE策略属性介绍请参见Proxy Cache

表 5. 关键属性说明
属性 描述
name 插件名称,固定为proxy-cache
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

enabled 是否启用proxy-cache插件,默认为true
config.response_code 可缓存的上游响应状态码,默认值200302404
config.request_methed 可缓存的下游请求方式,默认值为GETPOST
config.content_type 可缓存的上游响应内容类型,默认值test/plain
config.cache_ttl 以秒为单位的缓存实体时间,默认值500
config.strategy 支持缓存实体的备份数据存储,固定为memory

流量控制-KONG_REQUEST_SIZE_LIMIT

通过此策略实现阻止请求主体大于配置阈值的请求。

此处仅介绍KONG_REQUEST_SIZE_LIMIT策略的关键属性,更多关于KONG_REQUEST_SIZE_LIMIT策略属性介绍请参见Request Size Limiting

表 6. 关键属性说明
属性 描述
name 插件名称,固定为request-size-limiting
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.allowed_payload_size 允许的请求主体最大值(以兆字节为单位),默认为128
config.size_unit 单位,默认值为megabytes,可设置为设置为byteskilobytesmegabytes

流量控制-KONG_RATE_LIMIT

通过该策略实现限制在配置的时间内可以发出的HTTP请求数量。

此处仅介绍KONG_RATE_LIMIT策略的关键属性,更多关于KONG_RATE_LIMIT策略属性介绍请参见Rate Limiting

表 7. 关键属性说明
属性 描述
name 插件名称,固定为rate-limiting
service 插件作用的目标,可以是routeservice或者cosumer,此策略以service为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.second 每秒可以发出的HTTP请求数。
说明 每秒请求数或者每小时请求数至少设置一个。
config.hour 每小时可以发出的HTTP请求数。
说明 每秒请求数或者每小时请求数至少设置一个。

流量控制-KONG_RESPONSE_RATE_LIMIT

通过该策略实现根据上游服务响应头设置自定义限速对象,来限制在配置的时间内可以发出的HTTP请求数量。

此处仅介绍KONG_RESPONSE_RATE_LIMIT策略的关键属性,更多关于KONG_RESPONSE_RATE_LIMIT策略属性介绍请参见Response Rate Limiting

表 8. 关键属性说明
属性 描述
name 插件名称,固定为response-ratelimiting
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.limits.{limit_name} 根据上游服务返回的响应头设置的自定义对象列表,在{limit_name}占位符中设置名称。
config.limits.{limit_name}.minute 每分钟可以发出的HTTP请求数。

流量控制-KONG_REQUEST_TERMINATION

通过该策略实现使用指定的状态码和消息终止请求。

此处仅介绍KONG_REQUEST_TERMINATION策略的关键属性,更多关于KONG_REQUEST_TERMINATION策略属性介绍请参见Request Termination

表 9. 关键属性说明
属性 描述
name 插件名称,固定为request-termination
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.status_code 发送的状态码,默认值为403
config.message 发送的信息。

监控-KONG_DATADOG

通过该策略实现服务数据路由到本地代理。

此处仅介绍KONG_DATADOG策略的关键属性,更多关于KONG_DATADOG策略属性介绍请参见Datadog

表 10. 关键属性说明
属性 描述
name 插件名称,固定为datadog
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.host 数据发送到的IP地址或主机名。
config.port 数据发送到的服务器端口。

监控-KONG_ZIPKIN

通过该策略实现分布式跟踪HTTP请求的范围,并将范围上报给Zipkin服务器。

此处仅介绍KONG_ZIPKIN策略的关键属性,更多关于KONG_ZIPKIN策略属性介绍请参见Zipkin

表 11. 关键属性说明
属性 描述
name 插件名称,固定为zipkin
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.http_endpoint Zipkin服务器上传路径。
config.traceid_byte_count 每个请求的traceid字节长度。

协议-KONG_CERTIFICATE

通过该策略解密进入流量的HTTPS,并添加访问上游流量的HTTPS信任证书。

此处仅介绍KONG_CERTIFICATE策略的关键属性,更多关于KONG_CERTIFICATE策略属性介绍请参见Certificate Object

表 12. 关键属性说明
属性 描述
certificates.cert 用于解密进入流量的HTTPS的公共证书。
certificates.key 用于解密进入流量的HTTPS的私钥。
ca_certificates.cert 添加访问上游流量的HTTPS的信任证书。

编辑-KONG_CORRELATION_ID

通过该策略实现通过HTTP header传输的唯一ID关联请求和响应。

此处仅介绍KONG_CORRELATION_ID策略的关键属性,更多关于KONG_CORRELATION_ID策略属性介绍请参见Correlation ID

表 13. 关键属性说明
属性 描述
name 插件名称,固定为correlation-id
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.header_name HTTP header名称。

编辑-KONG_REQUEST_TRANSFORMER

通过该策略实现请求在到达上游服务器之前进行转换。这些转换可以是简单的替换,也可以是复杂的转换,通过使用正则表达式匹配请求的各个部分,将匹配的字符串保存到变量中,然后使用模板将这些字符串替换为转换后的请求。

此处仅介绍KONG_REQUEST_TRANSFORMER策略的关键属性,更多关于KONG_REQUEST_TRANSFORMER策略属性介绍请参见Request Transformer

表 14. 关键属性说明
属性 描述
name 插件名称,固定为request-transformer
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.remove.headers HTTP header名称列表,取消设置具有指定名称的字符串。
config.replace.body 成对取值的字符串,用新值替换旧值。

编辑-KONG_RESPONSE_TRANSFORMER

通过该策略实现在响应返回客户端之前,将上游服务器发送的响应进行转换。

此处仅介绍KONG_RESPONSE_TRANSFORMER策略的关键属性,更多关于KONG_RESPONSE_TRANSFORMER策略属性介绍请参见Response Transformer

表 15. 关键属性说明
属性 描述
name 插件名称,固定为response-transformer
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.remove.headers HTTP header名称列表,取消设置具有指定名称的字符串。
config.add.json 成对取值的字符串,当该属性不存在时,将给定值添加到字符串。

日志-KONG_HTTPLOG

通过该策略实现将请求和响应日志发送到HTTP服务器。

此处仅介绍KONG_HTTPLOG策略的关键属性,更多关于KONG_HTTPLOG策略属性介绍请参见HTTP Log

表 16. 关键属性说明
属性 描述
name 插件名称,固定为http-log
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.http_endpoint 请求和响应日志需要发送到的HTTP端点。

日志-KONG_LOGGLY

通过该策略实现将请求和响应日志发送到Loggly服务器。

此处仅介绍KONG_LOGGLY策略的关键属性,更多关于KONG_LOGGLY策略属性介绍请参见Loggly

表 17. 关键属性说明
属性 描述
name 插件名称,固定为loggly
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.host Loggly服务器的IP地址或主机名。
config.key Loggly客户令牌。

日志-KONG_STATSD

通过该策略实现将请求和响应日志发送到StatsD服务器。

此处仅介绍KONG_STATSD策略的关键属性,更多关于KONG_STATSD策略属性介绍请参见StatsD

表 18. 关键属性说明
属性 描述
name 插件名称,固定为statsd
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.host StatsD服务器的IP地址或主机名。

日志-KONG_TCPLOG

通过该策略实现将请求和响应日志发送到TCP服务器。

此处仅介绍KONG_TCPLOG策略的关键属性,更多关于KONG_TCPLOG策略属性介绍请参见TCP Log

表 19. 关键属性说明
属性 描述
name 插件名称,固定为tcp-log
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.host TCP服务器的IP地址或主机名。

日志-KONG_UPDLOG

通过该策略实现将请求和响应日志发送到UDP服务器。

此处仅介绍KONG_UPDLOG策略的关键属性,更多关于KONG_UPDLOG策略属性介绍请参见UDP Log

表 20. 关键属性说明
属性 描述
name 插件名称,固定为udp-log
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.host UDP服务器的IP地址或主机名。

鉴权-KONG_JWT

通过该策略实现验证请求是否包含JWT Token,只有通过验证的请求,才会转发到上游服务。

此处仅介绍KONG_JWT策略的关键属性,更多关于KONG_JWT策略属性介绍请参见JWT

表 21. 关键属性说明
属性 描述
name 插件名称,固定为jwt
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

consumer.rsa_public_key 如果algorithm设置为RS256时,该参数用于验证Token签名的公共密钥。
consumer.algorithm 用于验证Token签名的算法,默认值为RS256,可设置为RS256RS384RS512HS256HS384HS512

鉴权-KONG_BASIC

通过该策略根据添加用户名和密码实现基本身份验证。

此处仅介绍KONG_BASIC策略的关键属性,更多关于KONG_BASIC策略属性介绍请参见Basic Authentication

表 22. 关键属性说明
属性 描述
name 插件名称,固定为basic-auth
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

basicauth_credentials.username 用户名。
basicauth_credentials.password 密码。

鉴权-KONG_KEY

通过该策略根据添加密钥实现身份验证。

此处仅介绍KONG_KEY策略的关键属性,更多关于KONG_KEY策略属性介绍请参见Key Authentication

表 23. 关键属性说明
属性 描述
name 插件名称,固定为key-auth
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

keyauth_credentials.key 设置唯一的key验证客户端,如果未设置,自动生成。

鉴权-KONG_LDAP

通过该策略根据添加LDAP信息实现绑定身份验证。

此处仅介绍KONG_LDAP策略的关键属性,更多关于KONG_LDAP策略属性介绍请参见LDAP Authentication

表 24. 关键属性说明
属性 描述
name 插件名称,固定为ldap-auth
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

config.ldap_host LDAP服务器ID或者域名。
config.ldap_port LDAP服务器端口。

鉴权-KONG_HMAC

通过该策略根据添加HMAC签名身份验证,以建立传入请求的完成性。

此处仅介绍KONG_HMAC策略的关键属性,更多关于KONG_HMAC策略属性介绍请参见HMAC Authentication

表 25. 关键属性说明
属性 描述
name 插件名称,固定为hmac-auth
route 插件作用的目标,可以是routeservice或者cosumer,此策略以route为例。

如果不指定目标,则视为全局生效,作用到每个请求。

hmacauth_credentials.username 在HMAC签名验证中使用的用户名。