常見應用程式屬性

可以在 `application.properties` 檔案、`application.yml` 檔案中或作為命令列開關指定各種屬性。本附錄列出了常見的 Spring Cloud Gateway 屬性以及引用這些屬性的底層類。

屬性貢獻可能來自 classpath 中的其他 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

建立每個路由 URI 的 SpEL 表示式,預設為:'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 到 gRPC 過濾器。

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

false

啟用 local-response-cache 過濾器。

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

skip-update-cache-entry

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.leasing-strategy

fifo

配置池的租賃策略(fifo 或 lifo),預設為 FIFO,這是 Netty 的預設設定。

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

elastic

HttpClient 使用的池型別(elastic、fixed 或 disabled)。

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

http

Netty HttpClient 代理配置的代理型別 (http, socks4 或 socks5)。

spring.cloud.gateway.httpclient.proxy.username

Netty HttpClient 代理配置的使用者名稱。

spring.cloud.gateway.httpclient.response-timeout

響應超時時間。

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

3000ms

SSL close_notify flush 超時時間。預設為 3000 毫秒。

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

0

SSL close_notify read 超時時間。預設為 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.ssl-bundle

要使用的 SSL 捆綁包名稱。

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

將 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

jdk

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.streaming-buffer-size

16384

流媒體 mime-type 的緩衝區大小。

spring.cloud.gateway.mvc.streaming-media-types

流媒體的 mime-type。

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

返回突發容量配置的頭部名稱。

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-filter-cache-enabled

false

啟用路由過濾器快取,預設為 false。

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

true

是否應開啟 RouteRefreshListener。

spring.cloud.gateway.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

是否啟用 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 客戶端可觀察性

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

指標名稱 `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` 作為基本單位。但是,實際的基本單位由每個後端確定。(例如 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 客戶端可觀察性 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。

可觀察性 - 約定

下方列出了本專案宣告的所有 `GlobalObservationConvention` 和 `ObservationConvention`。

表 4. ObservationConvention 實現

ObservationConvention 類名

適用的 ObservationContext 類名

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

GatewayContext

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

GatewayContext