すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:NGINX 構成の ASM ゲートウェイへの移行

最終更新日:Mar 12, 2026

NGINX Ingress コントローラーの ConfigMap で設定される各パラメーターは、Service Mesh(ASM)ゲートウェイ上の Istio または Envoy の設定項目 1 つ以上に対応します。本トピックの表では、最も一般的に使用されるパラメーターとその ASM における対応関係をまとめています。全パラメーターの一覧については、「Ingress NGINX ConfigMap リファレンス」をご参照ください。

ASM ゲートウェイ構成と NGINX の違い

NGINX では、すべての設定を単一の ConfigMap に集約しますが、ASM では設定を以下の 3 種類の Istio リソースに分割して管理します。

Istio リソース制御対象代表的な NGINX 対応項目
Gatewayリスナーポート、TLS 終端処理、HTTPS リダイレクトssl-redirect
VirtualServiceルーティングルール、パスの再書き換え、ルート単位のタイムアウトルートレベルのアノテーション
DestinationRuleコネクションプール、キープアライブ、サーキットブレーカーkeep-alive-requestsproxy-connect-timeoutupstream-keepalive-*max-worker-connections

対応する設定を適用するには、クラスター内で該当する Istio リソースを作成または更新します。

接続およびキープアライブ関連パラメーター

これらのパラメーターは、コネクションプーリング、キープアライブ動作、および接続数制限を制御します。ASM では、ほとんどのパラメーターが connectionPool セクション(DestinationRule 内)に対応します。

NGINX パラメーターNGINX 動作ASM における対応設定
keep-alive-requestsキープアライブ接続あたりの最大リクエスト数。この上限に達すると接続が終了します。connectionPool.maxRequestsPerConnectionDestinationRule 内)。
max-worker-connectionsNGINX ワーカープロセスあたりの同時接続数の上限。connectionPool.tcp.maxConnectionsDestinationRule 内)。送信先ホスト 1 台に対する最大接続数を設定します。
upstream-keepalive-connectionsワーカープロセスあたりにキャッシュされるアイドル状態のキープアライブ接続数の上限。connectionPool.tcp.maxConnectionsDestinationRule 内)。このフィールドは、アイドル接続に限定されず、送信先ホストへの合計接続数を制御します。スコープの違いにより、値をそのまま 1 対 1 で移行することは適切ではありません。本パラメーターの移行前に、接続要件を再確認してください。
説明

このフィールドは、アイドル接続に限定されず、送信先ホストへの合計接続数を制御します。スコープの違いにより、値をそのまま 1 対 1 で移行することは適切ではありません。本パラメーターの移行前に、接続要件を再確認してください。

upstream-keepalive-timeoutアップストリームサーバーへのアイドル状態のキープアライブ接続のタイムアウト。connectionPool.http.idleTimeoutDestinationRule 内)。

例:DestinationRule によるコネクションプーリングの構成

apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: my-service-pool
spec:
  host: my-service.prod.svc.cluster.local
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 100
      http:
        maxRequestsPerConnection: 1000
        idleTimeout: 60s

タイムアウト関連パラメーター

NGINX パラメーターNGINX 動作ASM における対応設定
proxy-connect-timeoutアップストリームサーバーへの接続確立のタイムアウト。75 秒を超えることはできません。connectionPool.http.connectTimeoutDestinationRule 内)。

例:接続タイムアウトの設定

apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: my-service-timeout
spec:
  host: my-service.prod.svc.cluster.local
  trafficPolicy:
    connectionPool:
      http:
        connectTimeout: 30s

ヘッダー処理関連パラメーター

これらのパラメーターは、ヘッダーの処理、生成、検証方法を制御します。

NGINX パラメーターNGINX 動作ASM における対応設定
allow-backend-server-headerバックエンドがデフォルトの NGINX 文字列ではなく、独自の Server ヘッダーを返すことを許可します。ASM ゲートウェイではデフォルトで有効です。デフォルト値:true
enable-underscores-in-headersHTTP ヘッダー名にアンダースコアを含めることを許可します。Envoy の headers_with_underscores_action パラメーターに対応します。デフォルト値:true
ignore-invalid-headers無効な名前のヘッダーを無視します。有効な名前は、英字、数字、ハイフンのみから構成されます。アンダースコアのサポートは、underscores_in_headers 設定に依存します。Envoy ではヘッダー検証機能(Header Validator)を使用します。明示的な設定がない場合、Envoy はデフォルトの検証ルールを適用し、無効なヘッダーに対して 400 Bad Request を返します。image.png
generate-request-id受信リクエストに X-Request-ID ヘッダーが存在しない場合、ランダムな値を生成します。Envoy の generate_request_id パラメーターに対応します。デフォルト値:true。ASM プラグインを用いて変更できます。
server-tokensNGINX が Server レスポンスヘッダーおよびエラーページにバージョン情報を含めるかどうかを制御します。デフォルト:無効。ASM ゲートウェイでは、デフォルトで Envoy の Server ヘッダーが設定されます。エラーページにはバージョン情報は表示されません。

転送およびプロキシヘッダー

3 つの NGINX パラメーターが X-Forwarded-For の動作を制御します。Istio では、これらすべてがゲートウェイのネットワークトポロジー構成に対応します。

NGINX パラメーターNGINX 動作ASM における対応設定
compute-full-forwarded-forX-Forwarded-For ヘッダーを置き換える代わりに、リモートアドレスを追加します。Envoy の use_remote_address パラメーターで制御されます。デフォルト値:true。「ゲートウェイのネットワークトポロジーの構成」をご参照ください。
forwarded-for-headerクライアントの送信元 IP アドレスを識別するヘッダーを指定します。ASM ゲートウェイでは X-Forwarded-For を使用し、この目的でのカスタムヘッダー名はサポートされていません。
use-forwarded-headerstrue の場合、NGINX は受信した X-Forwarded-* ヘッダーを透過的に転送します(通常、NGINX が別のレイヤー 7 プロキシの後ろにある場合)。false の場合、NGINX は受信値を無視し、新規に生成します。ゲートウェイのネットワークトポロジーの構成」をご参照ください。

TLS およびリダイレクト関連パラメーター

NGINX パラメーターNGINX 動作ASM における対応設定
ssl-redirectサーバーに TLS 証明書が設定されている場合、HTTP を HTTPS にグローバルにリダイレクトします。tls.httpsRedirectゲートウェイ リソースで設定します。

例:HTTP から HTTPS へのリダイレクト

apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
  name: my-gateway
spec:
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "example.com"
    tls:
      httpsRedirect: true  # HTTP リクエストに対して 301 を返します

ログおよび可観測性

NGINX パラメーターNGINX 動作ASM における対応設定
log-format-upstreamアップストリームログのフォーマットをカスタマイズします。ASM コンソールの 可観測性設定 ページでログフォーマットを構成します。「可観測性設定の構成」をご参照ください。

リクエストボディのサイズ制限

NGINX パラメーターNGINX 動作ASM における対応設定
proxy-body-sizeクライアントからのリクエストボディの最大サイズ。この上限を超えると 413 Request Entity Too Large が返されます。ASM には対応する設定はありません。大規模なペイロードにはチャンク転送エンコーディングをご利用ください。

ワーカーおよびプロセス関連パラメーター

NGINX パラメーターNGINX 動作ASM における対応設定
reuse-portSO_REUSEPORT を使用してワーカープロセスごとに個別のリスニングソケットを作成し、カーネルが接続をワーカー間で分散できるようにします。デフォルト:trueASM ゲートウェイではデフォルトで有効です。デフォルト値:true
worker-cpu-affinityワーカープロセスを特定の CPU セットにバインドします。コンテナ環境では該当しません。デフォルト設定をご利用ください。

構成の拡張性

NGINX パラメーターNGINX 動作ASM における対応設定
allow-snippet-annotationsIngress アノテーション内にカスタム NGINX 構成スニペットを記述することを許可します。ASM ではアノテーションベースのスニペットはサポートされていません。ゲートウェイの動作をカスタマイズするには、IstioGateway YAML を直接編集してください。

参考文献