NGINX Ingress コントローラーを設定してクライアントのリクエスト本文を増やし、CORS をアクティブ化して追加のヘッダーを許可し、WebSocket を使用して Amazon EKS を操作する方法を教えてください。

所要時間1分
0

Amazon Elastic Kubernetes サービス (Amazon EKS) クラスターでクライアントリクエスト本文のサイズを増やすように NGINX イングレスコントローラーを設定したいと考えています。また、クロスオリジンリソース共有(CORS)を有効にして追加のヘッダーを許可し、WebSocketをNGINX Ingressコントローラーで使用したいと考えています。

簡単な説明

次の設定オプションのいずれかを選択します。

  • クライアント要求本文のサイズを大きくするには、「最大本文サイズの構成」セクションの手順を完了します。
  • CORS を有効にして追加のヘッダーを許可するには、「CORS の有効化」セクションの手順を完了します。
  • NGINX Ingress コントローラーで WebSocket を使用するには、「WebSocket の使用」セクションの手順を完了します。

解決方法

本文の最大サイズを設定する

本文サイズのリクエストがクライアントのリクエスト本文の最大許容サイズを超えると、NGINX Ingress Controller は HTTP 413 エラーを返します。client_max_body_size パラメータを使用して、より大きいサイズを設定します。

nginx.ingress.kubernetes.io/proxy-body-size: 8m

**注:**proxy-body-size のデフォルト値は 1 M です。この数値を必要なサイズに変更してください。

**注:**すべての投稿本文データとファイルアップロードの最大サイズを増やす必要がある場合があります。PHP の場合は、 php.ini コンフィギュレーションの post_max_sizeupload_max_file_size の値を増やす必要があります。

CORS をアクティブ

Ingress ルールで CORS をアクティブ化するには、次のアノテーションを追加します。

nginx.ingress.kubernetes.io/enable-cors: "true"

次の例は、ヘッダー X-Forwarded-For が受け入れられることを示しています。

nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"

他のヘッダーは、NGINX Ingress コントローラーのドキュメントの (GitHub Web サイトから) CORS を有効にするセクションにあります

WebSocket を使用する

NGINX は WebSocket (NGINX Web サイトから) バージョン 1.3 以降をサポートしていますが、必要ありません。接続が閉じられないようにするには、プロキシ読み取りタイムアウトとプロキシ送信タイムアウトの値を大きくする必要があります

次の例では、プロキシ読み取りタイムアウトとプロキシ送信タイムアウトに 120 秒が設定されています。

nginx.ingress.kubernetes.io/proxy-read-timeout: "120"
nginx.ingress.kubernetes.io/proxy-send-timeout: "120"

**注:**上記の 2 つの注釈のデフォルト値は 60 秒です


AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ