NGINX 設定の「client_max_body_size」の値をカスタマイズして、大きなファイルを AWS Elastic Beanstalk 環境にアップロードできるようにしたいと考えています。
解決策
デフォルトでは、NGINX のファイルアップロードは 1 MB に制限されています。1 MB を超えるファイルをアップロードするには、client_max_body_size の値を更新します。
**重要:**M と MB は、メガバイト」に相当する記号です。たとえば、2 M は 2 MB に相当します。ただし、NGINX 設定では有効な構文値として「M」のみを受け入れます。数字と「M」の文字の間にはスペースはありません。
注: すべての Amazon Linux 2 および Amazon Linux 2023 プラットフォームバージョンのデフォルトプロキシ設定をカスタマイズするには、Extending Elastic Beanstalk Linux platforms を参照してください。
Amazon Linux 2 および Amazon Linux 2023 で client_max_body_size の値を設定するには、次の手順を実行します。
-
次の内容を含む client_max_body_size.conf という名前の .conf 設定ファイルを作成します。
client_max_body_size 50M;
-
.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
- 新しいアプリケーションバージョンを Elastic Beanstalk 環境にデプロイします。
- SSH を使用して、Elastic Beanstalk 環境で実行されている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにログインします。
- 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