Elastic Beanstalk の「client_max_body_size」を変更するように nginx 設定をカスタマイズする方法を教えてください。

所要時間1分
0

「413 Request Entity Too Large」というエラーメッセージを出さずに、大きなサイズのファイルを AWS Elastic Beanstalk 環境にアップロードしたいと考えています。

簡単な説明

デフォルトでは、NGINX のファイルアップロードは 1 MB に制限されています。リクエストのサイズが設定値を超えると、413 Request Entity Too Large というエラーが返されます。1 MB を超えるファイルをアップロードするには、NGINX 設定ファイルで client_max_body_size ディレクティブを設定します。

重要: M と MB は、「メガバイト」に相当する記号です。例えば、2 M は 2 MB に相当します。ただし、設定ファイルでは MB は無効であるため、M のみを使用してください。

解決方法

Amazon Linux 2 環境で client_max_body_size を設定するには、以下を実行します。

1.    Elastic Beanstalk のデフォルトの NGINX 設定を拡張するには、以下を含む.conf 設定ファイル client_max_body_size.conf を追加します。

client_max_body_size 50M;

: 前述の例では、client_max_body_size の値が 50M に更新されています。要件に応じて、50 の代わりに任意の値に置き換えてください。

2.    .conf 設定ファイル client_max_body_size.conf をアプリケーションソースバンドルの .platform/nginx/conf.d/ という名前のフォルダーにコピーします。Elastic Beanstalk NGINX 設定では、このフォルダーに.conf ファイルが自動的に含まれます。ソースバンドルに存在しない場合は、必ずこのパスを作成してください。次の例では、アプリケーションの zip ファイル内の.platform ディレクトリと.conf ファイルの構造を示しています。

-- .ebextensions
       -- other non nginx server config files
            
-- .platform
       -- nginx
           -- conf.d
                 -- client_max_body_size.conf
                   
-- other application files

client_max_body_size.conf ファイルには、my-app/.platform/nginx/conf.d/client_max_body_size.conf のようなパスがあります。

3.    コードと新しい .platform/ ディレクトリをともに、新しいアプリケーションバージョンとして Elastic Beanstalk 環境にデプロイします。

4.    デプロイが完了したら、Elastic Beanstalk 環境で実行されているインスタンスにログインします。ログイン後、NGINX サーバーの設定が適用されていることを確認します。これを行うには、次のコマンドを使用します。

$ 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;

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

関連するコンテンツ