通用應用程式屬性

各種屬性可以在您的 application.properties 檔案、application.yml 檔案或作為命令列開關來指定。本附錄提供常見 Spring Cloud Gateway 屬性的清單,並參考使用它們的底層類別。

屬性貢獻可能來自類別路徑上的其他 jar 檔案,因此您不應將此視為詳盡的清單。此外,您可以定義自己的屬性。
名稱 預設值 描述

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

將 predicates 和 filters 中的 serviceId 轉換為小寫的選項,預設為 false。當 eureka 自動將 serviceId 轉換為大寫時很有用。因此 MYSERIVCE,將會符合 /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

SpEL 運算式,為每個路由建立 uri,預設為:'lb://'+serviceId。

spring.cloud.gateway.enabled

true

啟用閘道器功能。

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

true

在路由定義錯誤時失敗的選項,預設為 true。否則,將記錄警告。

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

true

啟用 add-request-header 篩選器。

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

true

啟用 add-request-parameter 篩選器。

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

true

啟用 add-response-header 篩選器。

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

true

啟用 circuit-breaker 篩選器。

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

true

啟用 dedupe-response-header 篩選器。

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

true

啟用 fallback-headers 篩選器。

spring.cloud.gateway.filter.hystrix.enabled

true

啟用 hystrix 篩選器。

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

true

啟用 JSON to gRPC 篩選器。

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

false

啟用 local-response-cache 篩選器。

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

啟用 map-request-header 篩選器。

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

true

啟用 modify-request-body 篩選器。

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

true

啟用 modify-response-body 篩選器。

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

true

啟用 prefix-path 篩選器。

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

true

啟用 preserve-host-header 篩選器。

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

true

啟用 redirect-to 篩選器。

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

啟用 remove-request-header 篩選器。

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

true

啟用 remove-request-parameter 篩選器。

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

true

啟用 remove-response-header 篩選器。

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

true

啟用 request-header-size 篩選器。

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

true

啟用 request-header-to-request-uri 篩選器。

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

啟用 request-rate-limiter 篩選器。

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

true

啟用 request-size 篩選器。

spring.cloud.gateway.filter.retry.enabled

true

啟用 retry 篩選器。

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

true

啟用 rewrite-location-response-header 篩選器。

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

true

啟用 rewrite-location 篩選器。

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

true

啟用 rewrite-path 篩選器。

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

true

啟用 rewrite-request-parameter 篩選器。

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

true

啟用 rewrite-response-header 篩選器。

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

true

啟用 save-session 篩選器。

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

啟用 secure-headers 篩選器。

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

啟用 set-path 篩選器。

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

true

啟用 set-request-header 篩選器。

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

true

啟用 set-request-host-header 篩選器。

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

true

啟用 set-response-header 篩選器。

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

true

啟用 set-status 篩選器。

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

true

啟用 strip-prefix 篩選器。

spring.cloud.gateway.forwarded.enabled

true

啟用 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

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 的 Proxy 組態主機名稱。

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

已組態主機清單的規則運算式 (Java)。應該直接連線,繞過 Proxy

spring.cloud.gateway.httpclient.proxy.password

Netty HttpClient 的 Proxy 組態密碼。

spring.cloud.gateway.httpclient.proxy.port

Netty HttpClient 的 Proxy 組態連接埠。

spring.cloud.gateway.httpclient.proxy.type

Netty HttpClient 的 Proxy 組態 proxyType。

spring.cloud.gateway.httpclient.proxy.username

Netty HttpClient 的 Proxy 組態使用者名稱。

spring.cloud.gateway.httpclient.response-timeout

回應逾時時間。

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

3000ms

SSL close_notify 清空逾時時間。預設為 3000 毫秒。

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

0

SSL close_notify 讀取逾時時間。預設為 0 毫秒。

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

10000ms

SSL 交握逾時時間。預設為 10000 毫秒

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

金鑰儲存庫密碼。

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

最大框架酬載長度。

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

true

將 Proxy ping 框架傳遞到下游服務,預設為 true。

spring.cloud.gateway.httpclient.wiretap

false

為 Netty HttpClient 啟用 wiretap 偵錯。

spring.cloud.gateway.httpserver.wiretap

false

為 Netty HttpServer 啟用 wiretap 偵錯。

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.mvc.form-filter.enabled

true

啟用 form-filter。

spring.cloud.gateway.mvc.forwarded-request-headers-filter.enabled

true

啟用 forwarded-request-headers-filter。

spring.cloud.gateway.mvc.http-client.connect-timeout

HttpClient 連線逾時時間。

spring.cloud.gateway.mvc.http-client.read-timeout

HttpClient 讀取逾時時間。

spring.cloud.gateway.mvc.http-client.ssl-bundle

要使用的 SSL 捆綁包名稱。

spring.cloud.gateway.mvc.http-client.type

HttpClient 類型。預設為 JDK。

spring.cloud.gateway.mvc.remove-content-length-request-headers-filter.enabled

true

啟用 remove-content-length-request-headers-filter。

spring.cloud.gateway.mvc.remove-hop-by-hop-request-headers-filter.enabled

true

啟用 forwarded-request-headers-filter。

spring.cloud.gateway.mvc.remove-hop-by-hop-response-headers-filter.enabled

true

啟用 forwarded-request-headers-filter。

spring.cloud.gateway.mvc.routes

路由清單。

spring.cloud.gateway.mvc.routes-map

路由對應。

spring.cloud.gateway.mvc.transfer-encoding-normalization-request-headers-filter.enabled

true

啟用 transfer-encoding-normalization-request-headers-filter。

spring.cloud.gateway.mvc.weight-calculator-filter.enabled

true

啟用 weight-calculator-filter。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.enabled

true

是否啟用 XForwardedHeadersFilter。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.for-append

true

是否啟用將 X-Forwarded-For 作為清單附加。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.for-enabled

true

是否啟用 X-Forwarded-For。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.host-append

true

是否啟用將 X-Forwarded-Host 作為清單附加。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.host-enabled

true

是否啟用 X-Forwarded-Host。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.order

0

XForwardedHeadersFilter 的順序。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.port-append

true

是否啟用將 X-Forwarded-Port 作為清單附加。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.port-enabled

true

是否啟用 X-Forwarded-Port。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.prefix-append

true

是否啟用將 X-Forwarded-Prefix 作為清單附加。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.prefix-enabled

true

是否啟用 X-Forwarded-Prefix。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.proto-append

true

是否啟用將 X-Forwarded-Proto 作為清單附加。

spring.cloud.gateway.mvc.x-forwarded-request-headers-filter.proto-enabled

true

是否啟用 X-Forwarded-Proto。

spring.cloud.gateway.observability.enabled

true

是否應開啟 Micrometer Observability 支援。

spring.cloud.gateway.predicate.after.enabled

true

啟用 after 斷言。

spring.cloud.gateway.predicate.before.enabled

true

啟用 before 斷言。

spring.cloud.gateway.predicate.between.enabled

true

啟用 between 斷言。

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

true

啟用 cloud-foundry-route-service 斷言。

spring.cloud.gateway.predicate.cookie.enabled

true

啟用 cookie 斷言。

spring.cloud.gateway.predicate.header.enabled

true

啟用 header 斷言。

spring.cloud.gateway.predicate.host.enabled

true

啟用 host 斷言。

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

true

在比對主機名稱時包含連接埠。

spring.cloud.gateway.predicate.method.enabled

true

啟用 method 斷言。

spring.cloud.gateway.predicate.path.enabled

true

啟用 path 斷言。

spring.cloud.gateway.predicate.query.enabled

true

啟用 query 斷言。

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

true

啟用 read-body 斷言。

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

true

啟用 remote-addr 斷言。

spring.cloud.gateway.predicate.weight.enabled

true

啟用 weight 斷言。

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

true

啟用 xforwarded-remote-addr 斷言。

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

X-RateLimit-Burst-Capacity

傳回 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

傳回 replenish rate 組態的標頭名稱。

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

X-RateLimit-Requested-Tokens

傳回 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

路由清單。

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

包含 Proxy 請求的 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

是否啟用 X-Forwarded-For。

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

true

是否啟用將 X-Forwarded-Host 作為清單附加。

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

true

是否啟用 X-Forwarded-Host。

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

是否啟用 X-Forwarded-Port。

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

true

是否啟用將 X-Forwarded-Prefix 作為清單附加。

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

true

是否啟用 X-Forwarded-Prefix。

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

true

是否啟用將 X-Forwarded-Proto 作為清單附加。

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

true

是否啟用 X-Forwarded-Proto。

可觀察性中繼資料

可觀察性 - 度量

您可以在下方找到此專案宣告的所有度量清單。

閘道器 Http Client 觀察

透過閘道器傳送請求時建立的觀察。

度量名稱 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

在啟動觀察後新增的 KeyValues 可能會從 *.active 度量中遺失。
Micrometer 內部使用 nanoseconds 作為 baseunit。但是,每個後端都會決定實際的 baseunit。(即 Prometheus 使用秒)

封閉類別的完整限定名稱 org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation

表 1. 低基數金鑰

名稱

描述

http.method (必要)

HTTP 方法。

http.status_code (必要)

HTTP 狀態碼。

spring.cloud.gateway.route.id (必要)

路由 ID。

spring.cloud.gateway.route.uri (必要)

從路由取得的 HTTP URI。

表 2. 高基數金鑰

名稱

描述

http.uri (必要)

完整 HTTP URI。

可觀察性 - Span

您可以在下方找到此專案宣告的所有 span 清單。

閘道器 Http Client 觀察 Span

透過閘道器傳送請求時建立的觀察。

Span 名稱 http.client.requests (由慣例類別 org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention 定義)。

封閉類別的完整限定名稱 org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation

表 3. 標籤金鑰

名稱

描述

http.method (必要)

HTTP 方法。

http.status_code (必要)

HTTP 狀態碼。

http.uri (必要)

完整 HTTP URI。

spring.cloud.gateway.route.id (必要)

路由 ID。

spring.cloud.gateway.route.uri (必要)

從路由取得的 HTTP URI。

可觀察性 - 慣例

您可以在下方找到此專案宣告的所有 GlobalObservationConventionObservationConvention 清單。

表 4. ObservationConvention 實作

ObservationConvention 類別名稱

適用的 ObservationContext 類別名稱

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

GatewayContext

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

GatewayContext