スキップしてコンテンツを表示

Elastic Beanstalk 環境にファイルをアップロードするときの “413 Request Entity Too Large” というエラーを解決する方法を教えてください。

所要時間1分
0

NGINX 設定の "client_max_body_size" の値をカスタマイズして、大きなファイルを AWS Elastic Beanstalk 環境にアップロードできるようにしたいと考えています。

解決策

デフォルトでは、NGINX のファイルアップロードは 1 MB に制限されています。1 MB を超えるファイルをアップロードするには、client_max_body_size の値を更新します。

重要: M と MB は、「メガバイト」に相当する記号です。例えば、2M は 2 MB に相当します。ただし、NGINX 設定では有効な構文値として「M」のみを受け入れます。数字と「M」の文字の間にはスペースはありません。

: すべての Amazon Linux 2 および Amazon Linux 2023 プラットフォームバージョンのデフォルトプロキシ設定をカスタマイズするには、「Extending Elastic Beanstalk Linux platforms」(Elastic Beanstalk Linux プラットフォームの拡張) を参照してください。

Amazon Linux 2 および Amazon Linux 2023 で client_max_body_size の値を設定するには、次の手順を実行します。

  1. 次の内容を含む client_max_body_size.conf という名前の .conf 設定ファイルを作成します。

    client_max_body_size 50M;
  2. .conf ファイル client_max_body_size.conf を、アプリケーションソースバンドルの .platform/nginx/conf.d/ という名前のフォルダにコピーします。

    : Elastic Beanstalk NGINX の設定では、.platform フォルダに.conf ファイルが自動的に含まれます。.conf ファイルがソースバンドルに存在しない場合は、必ずこのパスを作成してください。

次の例は、Java SE プラットフォーム上のアプリケーション zip ファイル内の .platform ディレクトリと.conf ファイルの構造を示しています。.platform フォルダは、すべての Linux プラットフォームのアプリケーションソースバンドルのルートに配置する必要があります。アプリケーションのバンドルの詳細については、使用しているプラットフォームのドキュメントを参照してください。

~/my-app.zip/
|-- web.jar
|-- Procfile
|-- readme.md  
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   `-- conf.d/
    |       `-- client_max_body_size.conf
  1. 新しいアプリケーションバージョンを Elastic Beanstalk 環境にデプロイします。
  2. SSH を使用して、Elastic Beanstalk 環境で実行されている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにログインします。
  3. NGINX 設定構文が正しく、client_max_body_size の値に加えられた変更が適用されていることを確認するには、次のコマンドを実行します。
    $ sudo nginx -T | egrep -i "client_max_body_size"
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
    client_max_body_size 50M;

関連情報

Create an application source bundle (Elastic Beanstalk アプリケーションソースバンドルを作成する)

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

関連するコンテンツ