Common application properties

可在 application.properties 文件、application.yml 文件内或作为命令行开关指定各种属性。此附录提供了常见 Spring Cloud Gateway 属性列表以及引用消耗它们的底层类的列表。

属性贡献可以来自类路径上的其他 jar 文件,因此你不应该将此视为一份详尽的清单。此外,你可以定义自己的属性。

Name Default Description

spring.cloud.gateway.default-filters

应用于每个路由的筛选器定义的列表。

spring.cloud.gateway.discovery.locator.enabled

false

启用 DiscoveryClient 网关集成的标志。

spring.cloud.gateway.discovery.locator.filters

spring.cloud.gateway.discovery.locator.include-expression

true

SpEL 表达式,将评估是否将服务包含在网关集成中,默认值为:true。

spring.cloud.gateway.discovery.locator.lower-case-service-id

false

在谓词和筛选器中将 serviceId 小写化的选项,默认值为 false。在 eureka 中很有用,因为它会自动将 serviceId 大写。所以 MYSERVICE 会匹配 /myservice/**

spring.cloud.gateway.discovery.locator.predicates

spring.cloud.gateway.discovery.locator.route-id-prefix

routeId 的前缀,默认为 discoveryClient.getClass().getSimpleName() + "_"。将服务 ID 追加以创建 routeId。

spring.cloud.gateway.discovery.locator.url-expression

'lb://'+serviceId

创建每个路由的 URI 的 SpEL 表达式,默认为:'lb://'+serviceId。

spring.cloud.gateway.enabled

true

Enables gateway functionality.

spring.cloud.gateway.fail-on-route-definition-error

true

在路由定义错误时失败的选项,默认值为 true。否则,会记录一条警告。

spring.cloud.gateway.filter.add-request-header.enabled

true

Enables the add-request-header filter.

spring.cloud.gateway.filter.add-request-parameter.enabled

true

Enables the add-request-parameter filter.

spring.cloud.gateway.filter.add-response-header.enabled

true

Enables the add-response-header filter.

spring.cloud.gateway.filter.circuit-breaker.enabled

true

Enables the circuit-breaker filter.

spring.cloud.gateway.filter.dedupe-response-header.enabled

true

Enables the dedupe-response-header filter.

spring.cloud.gateway.filter.fallback-headers.enabled

true

Enables the fallback-headers filter.

spring.cloud.gateway.filter.hystrix.enabled

true

Enables the hystrix filter.

spring.cloud.gateway.filter.json-to-grpc.enabled

true

启用 JSON 到 gRPC 筛选器。

spring.cloud.gateway.filter.local-response-cache.enabled

false

Enables the local-response-cache filter.

spring.cloud.gateway.filter.local-response-cache.request.no-cache-strategy

spring.cloud.gateway.filter.local-response-cache.size

针对此路由清除条目的缓存的最大大小(以 KB、MB 和 GB 为单位)。

spring.cloud.gateway.filter.local-response-cache.time-to-live

5m

缓存条目过期时间(以秒(s)、分钟(m)和小时(h)为单位)。

spring.cloud.gateway.filter.map-request-header.enabled

true

Enables the map-request-header filter.

spring.cloud.gateway.filter.modify-request-body.enabled

true

Enables the modify-request-body filter.

spring.cloud.gateway.filter.modify-response-body.enabled

true

Enables the modify-response-body filter.

spring.cloud.gateway.filter.prefix-path.enabled

true

Enables the prefix-path filter.

spring.cloud.gateway.filter.preserve-host-header.enabled

true

Enables the preserve-host-header filter.

spring.cloud.gateway.filter.redirect-to.enabled

true

Enables the redirect-to filter.

spring.cloud.gateway.filter.remove-hop-by-hop.headers

spring.cloud.gateway.filter.remove-hop-by-hop.order

0

spring.cloud.gateway.filter.remove-request-header.enabled

true

Enables the remove-request-header filter.

spring.cloud.gateway.filter.remove-request-parameter.enabled

true

Enables the remove-request-parameter filter.

spring.cloud.gateway.filter.remove-response-header.enabled

true

Enables the remove-response-header filter.

spring.cloud.gateway.filter.request-header-size.enabled

true

Enables the request-header-size filter.

spring.cloud.gateway.filter.request-header-to-request-uri.enabled

true

Enables the request-header-to-request-uri filter.

spring.cloud.gateway.filter.request-rate-limiter.default-key-resolver

spring.cloud.gateway.filter.request-rate-limiter.default-rate-limiter

spring.cloud.gateway.filter.request-rate-limiter.enabled

true

Enables the request-rate-limiter filter.

spring.cloud.gateway.filter.request-size.enabled

true

Enables the request-size filter.

spring.cloud.gateway.filter.retry.enabled

true

Enables the retry filter.

spring.cloud.gateway.filter.rewrite-location-response-header.enabled

true

Enables the rewrite-location-response-header filter.

spring.cloud.gateway.filter.rewrite-location.enabled

true

Enables the rewrite-location filter.

spring.cloud.gateway.filter.rewrite-path.enabled

true

Enables the rewrite-path filter.

spring.cloud.gateway.filter.rewrite-request-parameter.enabled

true

Enables the rewrite-request-parameter filter.

spring.cloud.gateway.filter.rewrite-response-header.enabled

true

Enables the rewrite-response-header filter.

spring.cloud.gateway.filter.save-session.enabled

true

Enables the save-session filter.

spring.cloud.gateway.filter.secure-headers.content-security-policy

default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline'

spring.cloud.gateway.filter.secure-headers.content-type-options

nosniff

spring.cloud.gateway.filter.secure-headers.disable

spring.cloud.gateway.filter.secure-headers.download-options

noopen

spring.cloud.gateway.filter.secure-headers.enabled

true

Enables the secure-headers filter.

spring.cloud.gateway.filter.secure-headers.frame-options

DENY

spring.cloud.gateway.filter.secure-headers.permitted-cross-domain-policies

none

spring.cloud.gateway.filter.secure-headers.referrer-policy

no-referrer

spring.cloud.gateway.filter.secure-headers.strict-transport-security

max-age=631138519

spring.cloud.gateway.filter.secure-headers.xss-protection-header

1 ; mode=block

spring.cloud.gateway.filter.set-path.enabled

true

Enables the set-path filter.

spring.cloud.gateway.filter.set-request-header.enabled

true

Enables the set-request-header filter.

spring.cloud.gateway.filter.set-request-host-header.enabled

true

Enables the set-request-host-header filter.

spring.cloud.gateway.filter.set-response-header.enabled

true

Enables the set-response-header filter.

spring.cloud.gateway.filter.set-status.enabled

true

Enables the set-status filter.

spring.cloud.gateway.filter.strip-prefix.enabled

true

Enables the strip-prefix filter.

spring.cloud.gateway.forwarded.enabled

true

Enables the ForwardedHeadersFilter.

spring.cloud.gateway.global-filter.adapt-cached-body.enabled

true

启用 adapt-cached-body 全局过滤器。

spring.cloud.gateway.global-filter.forward-path.enabled

true

启用 forward-path 全局过滤器。

spring.cloud.gateway.global-filter.forward-routing.enabled

true

启用 forward-routing 全局过滤器。

spring.cloud.gateway.global-filter.load-balancer-client.enabled

true

启用 load-balancer-client 全局过滤器。

spring.cloud.gateway.global-filter.local-response-cache.enabled

true

为所有路由启用 local-response-cache 过滤器,它允许使用 LocalResponseCache 过滤器在路由级别添加特定配置。

spring.cloud.gateway.global-filter.netty-routing.enabled

true

启用 netty-routing 全局过滤器。

spring.cloud.gateway.global-filter.netty-write-response.enabled

true

启用 netty-write-response 全局过滤器。

spring.cloud.gateway.global-filter.reactive-load-balancer-client.enabled

true

启用 reactive-load-balancer-client 全局过滤器。

spring.cloud.gateway.global-filter.remove-cached-body.enabled

true

启用 remove-cached-body 全局过滤器。

spring.cloud.gateway.global-filter.route-to-request-url.enabled

true

启用 route-to-request-url 全局过滤器。

spring.cloud.gateway.global-filter.websocket-routing.enabled

true

启用 websocket-routing 全局过滤器。

spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping

false

如果需要将全局 CORS 配置添加到 URL 处理程序。

spring.cloud.gateway.globalcors.cors-configurations

spring.cloud.gateway.handler-mapping.order

1

The order of RoutePredicateHandlerMapping.

spring.cloud.gateway.httpclient.compression

false

适用于 Netty HttpClient 的压缩功能。

spring.cloud.gateway.httpclient.connect-timeout

连接超时(以毫秒为单位),默认为 30 秒。

spring.cloud.gateway.httpclient.max-header-size

最大响应报头大小。

spring.cloud.gateway.httpclient.max-initial-line-length

最大的初始行长度。

spring.cloud.gateway.httpclient.pool.acquire-timeout

仅对 FIXED 类型,最大等待获取时间(以毫秒为单位)。

spring.cloud.gateway.httpclient.pool.eviction-interval

0

以指定时间间隔在后台执行定期的逐出检查。默认情况下禁用({@link Duration#ZERO})

spring.cloud.gateway.httpclient.pool.max-connections

仅对 FIXED 类型,在现有连接上启动挂起获取之前允许的最大连接数量。

spring.cloud.gateway.httpclient.pool.max-idle-time

达到该时间(以毫秒为单位)后,将关闭通道。如果为 NULL,则没有最大的空闲时间。

spring.cloud.gateway.httpclient.pool.max-life-time

达到该持续时间后,将关闭通道。如果为 NULL,则没有最长的生存期。

spring.cloud.gateway.httpclient.pool.metrics

false

启用在 Micrometer 中收集和注册通道池指标。默认情况下禁用。

spring.cloud.gateway.httpclient.pool.name

proxy

通道池映射名称,默认为 proxy。

spring.cloud.gateway.httpclient.pool.type

HttpClient 使用的池类型,默认为 ELASTIC。

spring.cloud.gateway.httpclient.proxy.host

Netty HttpClient 代理配置的主机名。

spring.cloud.gateway.httpclient.proxy.non-proxy-hosts-pattern

适用于配置好的主机列表的正则表达式 (Java)。该列表应直接访问,绕过代理

spring.cloud.gateway.httpclient.proxy.password

Netty HttpClient 代理配置的密码。

spring.cloud.gateway.httpclient.proxy.port

Netty HttpClient 代理配置的端口。

spring.cloud.gateway.httpclient.proxy.type

Netty HttpClient 代理配置的代理类型。

spring.cloud.gateway.httpclient.proxy.username

Netty HttpClient 代理配置的用户名。

spring.cloud.gateway.httpclient.response-timeout

The response timeout.

spring.cloud.gateway.httpclient.ssl.close-notify-flush-timeout

3000ms

SSL close_notify 刷新超时。默认值 3000 ms。

spring.cloud.gateway.httpclient.ssl.close-notify-read-timeout

0

SSL close_notify 读取超时。默认值 0 ms。

spring.cloud.gateway.httpclient.ssl.handshake-timeout

10000ms

SSL 握手超时。默认值 10000 ms。

spring.cloud.gateway.httpclient.ssl.key-password

密钥密码,默认值与 keyStorePassword 相同。

spring.cloud.gateway.httpclient.ssl.key-store

Netty HttpClient 的密钥库路径。

spring.cloud.gateway.httpclient.ssl.key-store-password

Keystore password.

spring.cloud.gateway.httpclient.ssl.key-store-provider

Netty HttpClient 的密钥库提供程序,可选字段。

spring.cloud.gateway.httpclient.ssl.key-store-type

JKS

Netty HttpClient 的密钥库类型,默认值为 JKS。

spring.cloud.gateway.httpclient.ssl.trusted-x509-certificates

用于验证远程端点证书的受信任证书。

spring.cloud.gateway.httpclient.ssl.use-insecure-trust-manager

false

安装 netty InsecureTrustManagerFactory。这是不安全的并且不适用于生产。

spring.cloud.gateway.httpclient.websocket.max-frame-payload-length

Max frame payload length.

spring.cloud.gateway.httpclient.websocket.proxy-ping

true

将代理 ping 帧代理到下游服务,默认为 true。

spring.cloud.gateway.httpclient.wiretap

false

为 Netty HttpClient 启用监听调试。

spring.cloud.gateway.httpserver.wiretap

false

为 Netty HttpServer 启用监听调试。

spring.cloud.gateway.loadbalancer.use404

false

spring.cloud.gateway.metrics.enabled

false

启用指标数据收集。

spring.cloud.gateway.metrics.prefix

spring.cloud.gateway

网关发出的所有指标的前缀。

spring.cloud.gateway.metrics.tags

添加到指标的标签图。

spring.cloud.gateway.observability.enabled

true

是否应启用 Micrometer Observability 支持。

spring.cloud.gateway.predicate.after.enabled

true

Enables the after predicate.

spring.cloud.gateway.predicate.before.enabled

true

Enables the before predicate.

spring.cloud.gateway.predicate.between.enabled

true

Enables the between predicate.

spring.cloud.gateway.predicate.cloud-foundry-route-service.enabled

true

Enables the cloud-foundry-route-service predicate.

spring.cloud.gateway.predicate.cookie.enabled

true

Enables the cookie predicate.

spring.cloud.gateway.predicate.header.enabled

true

Enables the header predicate.

spring.cloud.gateway.predicate.host.enabled

true

Enables the host predicate.

spring.cloud.gateway.predicate.host.include-port

true

在匹配主机名时包括端口。

spring.cloud.gateway.predicate.method.enabled

true

Enables the method predicate.

spring.cloud.gateway.predicate.path.enabled

true

Enables the path predicate.

spring.cloud.gateway.predicate.query.enabled

true

Enables the query predicate.

spring.cloud.gateway.predicate.read-body.enabled

true

Enables the read-body predicate.

spring.cloud.gateway.predicate.remote-addr.enabled

true

Enables the remote-addr predicate.

spring.cloud.gateway.predicate.weight.enabled

true

Enables the weight predicate.

spring.cloud.gateway.predicate.xforwarded-remote-addr.enabled

true

Enables the xforwarded-remote-addr predicate.

spring.cloud.gateway.redis-rate-limiter.burst-capacity-header

X-RateLimit-Burst-Capacity

返回突发容量配置的标头名称。

spring.cloud.gateway.redis-rate-limiter.config

spring.cloud.gateway.redis-rate-limiter.include-headers

true

是否应包括包含速率限制器信息的标头,默认为 true。

spring.cloud.gateway.redis-rate-limiter.remaining-header

X-RateLimit-Remaining

在当前秒期间返回剩余请求数量的标头名称。

spring.cloud.gateway.redis-rate-limiter.replenish-rate-header

X-RateLimit-Replenish-Rate

返回填充率配置的标头名称。

spring.cloud.gateway.redis-rate-limiter.requested-tokens-header

X-RateLimit-Requested-Tokens

返回请求令牌配置的头部名称。

spring.cloud.gateway.redis-route-definition-repository.enabled

true

如果应启用 RedisRouteDefinitionRepository。

spring.cloud.gateway.restrictive-property-accessor.enabled

true

使用 SpEL 限制方法和属性访问。

spring.cloud.gateway.route-refresh-listener.enabled

true

如果应启用 RouteRefreshListener。

spring.cloud.gateway.routes

List of Routes.

spring.cloud.gateway.set-status.original-status-header-name

包含代理请求的 HTTP 代码的头部的名称。

spring.cloud.gateway.streaming-media-types

spring.cloud.gateway.x-forwarded.enabled

true

如果启用了 XForwardedHeadersFilter。

spring.cloud.gateway.x-forwarded.for-append

true

如果启用了将 X-Forwarded-For 追加为列表。

spring.cloud.gateway.x-forwarded.for-enabled

true

If X-Forwarded-For is enabled.

spring.cloud.gateway.x-forwarded.host-append

true

如果启用了将 X-Forwarded-Host 追加为列表。

spring.cloud.gateway.x-forwarded.host-enabled

true

If X-Forwarded-Host is enabled.

spring.cloud.gateway.x-forwarded.order

0

XForwardedHeadersFilter 的顺序。

spring.cloud.gateway.x-forwarded.port-append

true

如果启用了将 X-Forwarded-Port 追加为列表。

spring.cloud.gateway.x-forwarded.port-enabled

true

If X-Forwarded-Port is enabled.

spring.cloud.gateway.x-forwarded.prefix-append

true

如果启用了将 X-Forwarded-Prefix 追加为列表。

spring.cloud.gateway.x-forwarded.prefix-enabled

true

If X-Forwarded-Prefix is enabled.

spring.cloud.gateway.x-forwarded.proto-append

true

如果启用了将 X-Forwarded-Proto 追加为列表。

spring.cloud.gateway.x-forwarded.proto-enabled

true

If X-Forwarded-Proto is enabled.

Observability metadata

Observability - Metrics

Observability - Metrics

下面您可以找到此项目声明的所有指标的列表。

Gateway Http Client Observation

向网关发送请求时创建的观察记录。

指标名称 http.client.requests(由约定类 org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention 定义)。类型 timer

指标名称 http.client.requests.active(由约定类 org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention 定义)。类型 long task timer

在 Observation 启动后添加的 KeyValues 可能会缺失于 *.active 指标。

Micrometer 内部使用 nanoseconds 作为基本单位。但是,每个后端决定实际基本单位。(例如,Prometheus 使用秒)

封装类 org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation 的完全限定名。

Table 1. Low cardinality Keys

Name

Description

http.method (required)

HTTP Method.

http.status_code (required)

HTTP Status.

spring.cloud.gateway.route.id (required)

Route ID.

spring.cloud.gateway.route.uri (required)

从 Route 中获取的 HTTP URI。

Table 2. High cardinality Keys

Name

Description

http.uri (required)

Full HTTP URI.

Observability - Spans

Observability - Spans

下面您可以找到此项目声明的所有 span 的列表。

Gateway Http Client Observation Span

向网关发送请求时创建的观察记录。

Span 名称 http.client.requests(由约定类 org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention 定义)。

封装类 org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation 的完全限定名。

Table 3. Tag Keys

Name

Description

http.method (required)

HTTP Method.

http.status_code (required)

HTTP Status.

http.uri (required)

Full HTTP URI.

spring.cloud.gateway.route.id (required)

Route ID.

spring.cloud.gateway.route.uri (required)

从 Route 中获取的 HTTP URI。

Observability - Conventions

Observability - Conventions

下面您可以找到此项目声明的所有 GlobalObservationConventionObservationConvention 的列表。

Table 4. ObservationConvention implementations

ObservationConvention Class Name

Applicable ObservationContext Class Name

org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention

GatewayContext

org.springframework.cloud.gateway.filter.headers.observation.GatewayObservationConvention

GatewayContext