付録 A: 共通のアプリケーションプロパティ

application.properties ファイル、application.yml ファイル、コマンドラインスイッチとして、さまざまなプロパティを指定したり環境別に切り替えたりできます。この付録では、一般的な Spring Cloud Gateway プロパティの一覧と、使用する基になるクラスへの参照を提供します。なお、プロパティ名はバージョンアップ時に変更される場合があるため、使用している Spring Boot バージョンのドキュメントを参照してください。

プロパティのコントリビュートは、クラスパス上の追加の 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

述語とフィルターで serviceId を小文字にするオプション。デフォルトは false。eureka で自動的に serviceId を大文字にするときに便利です。つまり、MYSERIVCE は /myservice/** と一致します。

spring.cloud.gateway.discovery.locator.predicates

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

routeId のプレフィックス。デフォルトは discoveryClient.getClass().getSimpleName() + "_" です。routeId を作成するためにサービス ID が追加されます。

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

サーキットブレーカーフィルターを有効にします。

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

true

重複排除レスポンスヘッダーフィルターを有効にします。

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

true

フォールバックヘッダーフィルターを有効にします。

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

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

プレフィックスパスフィルターを有効にします。

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

true

ホストヘッダーの保持フィルターを有効にします。

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

true

リダイレクト先フィルターを有効にします。

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

リクエストサイズフィルターを有効にします。

spring.cloud.gateway.filter.retry.enabled

true

再試行フィルターを有効にします。

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

true

rewrite-location-response-header フィルターを有効にします。

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

true

書き換え場所フィルターを有効にします。

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

true

リライトパスフィルターを有効にします。

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

true

書き換えリクエストパラメーターフィルターを有効にします。

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

true

rewrite-response-header フィルターを有効にします。

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

true

セッション保存フィルターを有効にします。

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

セキュアヘッダーフィルターを有効にします。

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

セットパスフィルターを有効にします。

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

ステータス設定フィルターを有効にします。

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

true

ストリッププレフィックスフィルターを有効にします。

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

フォワードパスグローバルフィルターを有効にします。

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

true

フォワードルーティンググローバルフィルターを有効にします。

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

true

ロードバランサークライアントグローバルフィルターを有効にします。

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

react-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 ルーティンググローバルフィルターを有効にします。

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

チャネルプールマップ名。デフォルトはプロキシです。

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 のプロキシ構成用の proxyType。

spring.cloud.gateway.httpclient.proxy.username

Netty HttpClient のプロキシ構成のユーザー名。

spring.cloud.gateway.httpclient.response-timeout

レスポンスタイムアウト。

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

3000ms

SSLclose_notify フラッシュタイムアウト。デフォルトは 3000 ミリ秒です。

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

0

SSLclose_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

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 オブザーバビリティサポートをオンにする必要がある場合。

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

ヘッダー述語を有効にします。

spring.cloud.gateway.predicate.host.enabled

true

ホスト述語を有効にします。

spring.cloud.gateway.predicate.method.enabled

true

メソッド述語を有効にします。

spring.cloud.gateway.predicate.path.enabled

true

パス述語を有効にします。

spring.cloud.gateway.predicate.query.enabled

true

クエリ述語を有効にします。

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

重み述語を有効にします。

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.restrictive-property-accessor.enabled

true

SpEL のメソッドとプロパティへのアクセスを制限します。

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 が有効になっている場合。

A.1. 可観測性 - メトリクス

以下に、このプロジェクトで宣言されたすべての指標のリストを示します。

A.1.1. ゲートウェイ 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。

A.2. 可観測性 - スパン

以下に、このプロジェクトで宣言されたすべてのスパンのリストを示します。

A.2.1. ゲートウェイ HTTP クライアントの観測スパン

ゲートウェイ経由でリクエストを送信するときに作成される監視。

スパン名  http.client.requests (規約クラス org.springframework.cloud.gateway.filter.headers.observation.DefaultGatewayObservationConvention で定義)。

外側のクラス org.springframework.cloud.gateway.filter.headers.observation.GatewayDocumentedObservation の完全修飾名。

表 3: タグキー

名前

説明

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)

HTTP URI taken from the Route.

A.3. Observability - Conventions

Below you can find a list of all GlobalObservabilityConventions and ObservabilityConventions declared by this project.

Table 4. ObservationConvention implementations

ObservationConvention Class Name

Applicable ObservationContext Class Name

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

GatewayContext