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

Alibaba Cloud Service Mesh:一般的な NGINX 設定を ASM ゲートウェイに移行する

最終更新日:Jan 13, 2025

このトピックでは、一般的な NGINX 設定とサービスメッシュ(ASM)ゲートウェイの設定とのマッピング関係について説明します。これは、NGINX 設定を ASM ゲートウェイに移行するのに役立ちます。

NGINX パラメーター

説明

ASM ゲートウェイでの設定

allow-backend-server-header

バックエンドが汎用 NGINX 文字列ではなく、Server ヘッダーを返すことを許可します。

ASM ゲートウェイの対応するパラメーターのデフォルト設定は true です。

allow-snippet-annotations

Ingress オブジェクトの注釈にカスタムスクリプトを追加して NGINX 設定を変更できるようにします。

ASM ゲートウェイには、このパラメーターに対応するパラメーターはありません。 ASM ゲートウェイの設定を変更するには、IstioGateway YAML ファイルを編集する必要があります。

compute-full-forwarded-for

ヘッダーを置き換える代わりに、リモートアドレスを X-Forwarded-For ヘッダーに追加します。

設定は Envoy の use_remote_address パラメーターに依存し、デフォルト値は true です。 Istio が X-Forwarded-For ヘッダーを処理する方法の詳細については、「Configuring Gateway Network Topology」をご参照ください。

enable-underscores-in-headers

ヘッダー名にアンダースコアを使用できるようにします。

このパラメーターは、Envoy の headers_with_underscores_action パラメーターに対応し、デフォルト値は true です。

forwarded-for-header

クライアントの発信 IP アドレスを識別するために使用されるヘッダーフィールドを設定します。

ASM ゲートウェイはこのパラメーターのカスタム設定をサポートしておらず、デフォルト値は X-Forwarded-For です。

generate-request-id

リクエストに X-Request-ID が存在しない場合、X-Request-ID のランダムな値を生成します。

このパラメーターは、Envoy の generate_request_id パラメーターに対応します。 ASM プラグインを使用して値を変更できます。デフォルト値は true です。

ignore-invalid-headers

無効な名前のヘッダーを無視するかどうかを設定します。有効なヘッダー名には、文字、数字、ハイフン(-)が含まれている必要があり、アンダースコア(_)が含まれている場合があります。

説明

有効なヘッダー名にアンダースコア(_)を含めることができるかどうかは、underscores_in_headers パラメーターによって制御されます。

Envoy は Header Validator を提供します。 Header Validator が設定されていない場合は、デフォルト値が使用されます。無効なヘッダーの場合、システムは Bad Request をプロンプトします。

image.png

keep-alive-requests

1 つのキープアライブ接続で処理できるリクエストの最大数を設定します。リクエストの最大数に達すると、接続は閉じられます。

接続の最大リクエスト数を構成する方法の詳細については、「connectionPool.maxRequestsPerConnection」 in 宛先ルール をご参照ください。

log-format-upstream

ログの形式をカスタマイズします。

ASM では、ASM コンソールの [可観測性の設定] ページでログの形式をカスタマイズできます。詳細については、「可観測性の設定」をご参照ください。

max-worker-connections

ワーカープロセスが同時に開くことができる接続の最大数を設定します。

ASM では、connectionPool.tcp.maxConnectionsDestination Rule の connectionPool.tcp.maxConnections フィールドを設定して、同じホストへの最大接続数を設定できます。

proxy-body-size

クライアントに許可されるリクエストボディの最大サイズを設定します。リクエストボディのサイズがこの値を超えると、413 エラーが報告されます。

ASM はこの設定をサポートしていません。リクエストはブロック単位で送信し、大きなボディを使用しないことをお勧めします。

proxy-connect-timeout

プロキシサーバーとの接続を確立するためのタイムアウト期間を設定します。タイムアウト期間は 75 秒を超えることはできません。

タイムアウト期間の設定方法の詳細については、「connectionPool.http.connectTimeout」 in 宛先ルール をご参照ください。

reuse-port

カーネルがワーカープロセス間で着信接続を分散できるように、NGINX が各ワーカープロセスに個別のリスニングソケットを作成するように設定します(SO_REUSEPORT パラメーターを使用)。デフォルト値は true です。

ASM ゲートウェイの対応するパラメーターのデフォルト設定は true です。

server-tokens

レスポンスで NGINX Server ヘッダーを送信し、エラーページに NGINX バージョンを表示するかどうかを設定します。デフォルト値は無効です。

デフォルトでは、ASM ゲートウェイは server ヘッダーを Envoy のヘッダーに設定します。ただし、エラーページには Envoy のバージョンは表示されません。

ssl-redirect

サーバーにトランスポート層セキュリティ(TLS)証明書がある場合、HTTPS へのリダイレクトのグローバル値を設定します。

リダイレクトを設定する方法の詳細については、tls.httpsリダイレクトGateway の tls.httpsRedirect をご参照ください。

upstream-keepalive-connections

各ワーカープロセスのキャッシュに保持されるアップストリームサーバーへのアイドル状態のキープアライブ接続の最大数を設定します。

ASM では、connectionPool.tcp.maxConnectionsDestination Rule の connectionPool.tcp.maxConnections フィールドを設定して、Istio 内の同じホストへのすべての接続の最大数を設定できます。これは、アイドル接続の最大数を設定する NGINX の設定とは異なります。

upstream-keepalive-timeout

アップストリームサーバーへのアイドル接続が維持されるタイムアウト期間を設定します。

アイドル接続のタイムアウト期間を設定する方法の詳細については、connectionPool.http.idleTimeout (アイドルタイムアウト)Destination Rule の connectionPool.http.idleTimeout をご参照ください。

use-forwarded-headers

  • 値が true の場合、NGINX は着信 X-Forwarded-* ヘッダーを転送します。ほとんどの場合、このパラメーターは NGINX が別のレイヤー 7 プロキシの背後にある場合に使用されます。

  • 値が false の場合、NGINX は着信値を無視し、新しい値を入力します。

Istio が X-Forwarded-For ヘッダーを処理する方法の詳細については、「Configuring Gateway Network Topology」をご参照ください。

worker-cpu-affinity

ワーカープロセスを CPU のセットにバインドします。

コンテナ環境では、デフォルト値を使用し、このオプションを設定しないことをお勧めします。

詳細については、「Ingress Nginx」をご参照ください。