004-spring cloud gateway-GatewayFilter Factories
Posted 木子旭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了004-spring cloud gateway-GatewayFilter Factories相关的知识,希望对你有一定的参考价值。
一、GatewayFilter Factories
路由过滤器允许以某种方式修改传入的HTTP请求或传出的HTTP响应。路径过滤器的范围限定为特定路径。 Spring Cloud Gateway包含许多内置的GatewayFilter工厂。
1.1、请求头
spring: cloud: gateway: routes: - id: add_request_header_route uri: http://example.org filters: - AddRequestHeader=X-Request-Foo, Bar
名称和值,这将为所有匹配请求的下游请求标头添加X-Request-Foo:Bar标头。
移除请求头
filters:
- RemoveRequestHeader=X-Request-Foo
1.2、请求参数
filters:
- AddRequestParameter=foo, bar
这会将foo = bar添加到下游请求的所有匹配请求的查询字符串中。
1.3、添加响应头
filters:
- AddResponseHeader=X-Response-Foo, Bar
这会将X-Response-Foo:Bar标头添加到所有匹配请求的下游响应标头中。
移除响应头
filters:
- RemoveResponseHeader=X-Response-Foo
设置响应头
filters:
- SetResponseHeader=X-Response-Foo, Bar
此GatewayFilter将替换具有给定名称的所有标头,而不是添加。
1.4、路径前缀
filters:
- PrefixPath=/mypath
这将使/ mypath前缀为所有匹配请求的路径。所以对/ hello的请求会被发送到/ mypath / hello。
1.5、原始主机头
没有参数,此过滤器设置路由过滤器将检查的请求属性,以确定是否应发送原始主机头,而不是http客户端确定的主机头。
filters:
- PreserveHostHeader
1.6、重定向
filters: - RedirectTo=302, http://acme.org
这将发送带有Location:http://acme.org标头的状态302以执行重定向。
1.7、重写路径
predicates: - Path=/foo/** filters: - RewritePath=/foo/(?<segment>.*), /${segment}
对于/ foo / bar的请求路径,这将在发出下游请求之前将路径设置为/ bar。注意由于YAML规范,$ 替换为$。
1.8、保存Session
predicates: - Path=/foo/** filters: - SaveSession
1.9、路径模板
SetPath GatewayFilter Factory采用路径模板参数。它提供了一种通过允许模板化路径段来操作请求路径的简单方法。
predicates: - Path=/foo/{segment} filters: - SetPath=/{segment}
对于/ foo / bar的请求路径,这将在发出下游请求之前将路径设置为/ bar。
1.10、设置响应状态
spring: cloud: gateway: routes: - id: setstatusstring_route uri: http://example.org filters: - SetStatus=BAD_REQUEST - id: setstatusint_route uri: http://example.org filters: - SetStatus=401
1.11、请求参数剥离
parts参数指示在将请求发送到下游之前从请求中剥离的路径中的部分数。
predicates: - Path=/name/** filters: - StripPrefix=2
当通过网关向/ name / bar / foo发出请求时,对nameservice的请求将类似于http:// nameservice / foo。
1.12、重试
retries:重试:应该尝试的重试次数
statuses:状态:应该重试的HTTP状态代码,使用org.springframework.http.HttpStatus表示
methods:方法:应该重试的HTTP方法,使用org.springframework.http.HttpMethod表示
series:系列:要重试的状态代码系列,使用org.springframework.http.HttpStatus.Series表示
routes: - id: retry_test uri: http://localhost:8080/flakey predicates: - Host=*.retry.com filters: - name: Retry args: retries: 3 statuses: BAD_GATEWAY
1.13、Hystrix GatewayFilter Factory
1.14、请求限速
RequestRateLimiter GatewayFilter Factory
1.15、安全头
SecureHeaders GatewayFilter Factory
以上是关于004-spring cloud gateway-GatewayFilter Factories的主要内容,如果未能解决你的问题,请参考以下文章