微服务网关的Spring Cloud Gateway类型网关完全兼容开源Spring Cloud Gateway网关的所有策略,如路由、插件、客户端、熔断、负载均衡和限流等。为了帮助您更好的配置策略,本文对该网关的各种策略配置进行说明。

路由-SCG_ROUTE

Spring Cloud Gateway将路由作为Spring WebFlux基础架构的一部分进行匹配。Spring Cloud Gateway包括许多内置的路由谓词。所有这些谓词都与HTTP请求的不同属性匹配。您可以将多个路由谓词与逻辑and语句结合使用。

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

表 1. 关键属性说明
属性 描述
routes 动态路由前缀。
id 服务ID。
uri 访问路径URL。
order 加载规则。
predicates 断言。
filters 插件。

插件-SCG_DEFAULT_FILTER

您可使用该策略添加过滤器并将其应用于所有路由。

此处仅介绍SCG_DEFAULT_FILTER策略的关键属性,更多关于SCG_DEFAULT_FILTER策略的介绍请参见Default Filters

表 2. 关键属性说明
属性 描述
gateway DEFAULT_FILTER前缀。
default-filters 配置默认过滤器。

插件-SCG_FILTER_OPTIONS

该策略为原始响应添加了一系列起安全作用的响应头,如果您想修改这些Header的值,那么就需要使用这些Headers对应的后缀。

此处仅介绍SCG_FILTER_OPTIONS策略的关键属性,更多关于SCG_FILTER_OPTIONS策略的介绍请参见The SecureHeaders Factory

表 3. 关键属性说明
属性 描述
secure-headers FILTER_OPTIONS策略前缀。
content-type-options 如果从script或stylesheet读入的文件的MIME类型与指定MIME类型不匹配,不允许读取该文件。用于防止XSS等跨站脚本攻击。
download-options 用于放置用户下载文件。
request-rate-limiter 限制用户访问速率。

安全-SCG_CORS

您可以配置网关以控制CORS行为。全局CORS配置是URL模式到CorsConfiguration的映射。

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

表 4. 关键属性说明
属性 描述
globalcors CORS策略前缀。
cors-configurations CORS策略属性配置。
allowedOrigins 允许跨域的源(网站域名/IP),设置*为全部。
allowedMethods 允许跨域的method,默认为GETOPTIONS,设置*为全部。

客户端-SCG_HTTP_CLIENT

您可以使用该策略为网关配置一组可以信任的已知证书。

此处仅介绍SCG_HTTP_CLIENT策略的关键属性,更多关于SCG_HTTP_CLIENT策略属性介绍请参见TSL and SSL

表 5. 关键属性说明
属性 描述
httpclient HTTP_CLIENT策略前缀。
trustedX509Certificates 配置可信的X509证书。

熔断-SCG_HYSTRIX

您可以使用该策略为路由设置熔断策略。

此处仅介绍SCG_HYSTRIX策略的关键属性,更多关于SCG_HYSTRIX策略属性介绍请参见The Hystrix Factory

表 6. 关键属性说明
属性 描述
hystrix HYSTRIX策略前缀。
timeoutInMilliseconds 超时时间,默认10000,单位:ms。

限流-SCG_REDIS_RATE_LIMITER

该策略基于Stripe工作,需要使用Spring Boot启动器,限制用户访问请求速率。

此处仅介绍SCG_REDIS_RATE_LIMITER策略的关键属性,更多关于SCG_REDIS_RATE_LIMITER策略属性介绍请参见The Redis

表 7. 关键属性说明
属性 描述
redis_rate_limiter REDIS_RATE_LIMITER策略前缀。
burst-capacity-header 允许用户每秒钟内执行的最大请求数。当此值设置为零时表示阻止所有请求。
remaining-header 剩余消息固定头部。
replenish-rate-header 允许用户每秒发送的请求数。
requested-token-header 允许用户每个请求从存储桶中提取的令牌数。

负载均衡-SCG_RIBBON

Ribbon策略是客户端负载平衡器,可让您对HTTP和TCP客户端的行为进行控制。

此处仅介绍SCG_RIBBON策略的关键属性,更多关于SCG_RIBBON策略属性介绍请参见Working with load balancers

表 8. 关键属性说明
属性 描述
ribbon RIBBON策略前缀。
NIWSServerListClassName ServerList该接口实现类。
listOfServers 服务后端节点。
ConnectTimeout 建立连接所用的时间,默认1000,单位:ms。
ReadTimeout 建立连接后从服务器读取到可用资源所用的时间,默认3000,单位:ms。
MaxTotalHttpConnections 最大HTTP连接数,默认500。
MaxConnectionsPerHost 每个host连接数,默认100。