1. ホーム
  2. amazon-web-services

[解決済み] AWS Elastic Beanstalk上のNginx confでclient_max_body_sizeを増加させる。

2022-04-22 05:15:24

質問内容

次のような問題があります。 "413 Request Entity Too Large" 10MB以上のファイルをAWS Elastic Beanstalk上で動作する私たちのAPIに投稿すると、エラーが発生します。

いろいろと調べてみたところ、このような場合は クライアント最大ボディサイズ しかし、Elastic Beanstalkを使用してこれを行う方法についてのドキュメントを見つけることができません。私の推測では、ebetensionファイルを使用して変更する必要があると思います。

どうすれば制限を増やせるか、どなたかお考えですか?10MBはかなり弱いので、手動でこれを上げる方法があるはずです。

解決方法は?

これには2つの方法があります。 残念ながら、EBアプリケーションの種類によってはうまくいくものもあれば、そうでないものもあります。

AWSのドキュメントでサポート/推奨されているもの

のような一部のアプリケーションタイプでは Java SE , Go , Node.js また、ElasticbeanstalkはNginxをどのように設定するかということを理解しています。

<ブロッククオート

Elastic Beanstalkのデフォルトのnginxの設定を拡張する。 という名前のフォルダに.conf設定ファイルを追加します。 .ebextensions/nginx/conf.d/ アプリケーションのソースバンドルにある . Elastic Beanstalkのnginxコンフィギュレーションは、このフォルダに自動的に.confファイルを含めます。

<ブロッククオート
~/workspace/my-app/

|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- web.jar

<ブロッククオート

リバースプロキシの設定 - Java SE

具体的に最大アップロードサイズを大きくするには、次に、ファイルを .ebextensions/nginx/conf.d/proxy.conf を設定し、最大ボディサイズをお好みのサイズに設定します。

client_max_body_size 50M;

Nginxの設定ファイルを直接作成する

他のアプリケーションタイプについては、多くのリサーチと素晴らしいAWSサポートチームと何時間も作業した後、私は設定ファイルを .ebextensions を使用して、nginxの設定を補完しています。この変更により、投稿本文のサイズを大きくすることができました。

の内部には .ebextensions というファイルを作成しました。 01_files.config を以下の内容で作成しました。

files:
    "/etc/nginx/conf.d/proxy.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
           client_max_body_size 20M;

これにより、/etc/nginx/conf.d ディレクトリの中に proxy.conf ファイルが生成されます。proxy.confファイルには、単純に次の1行が含まれます。 client_max_body_size 20M; というのがあって、これでうまくいく。

プラットフォームによっては、このファイルはデプロイ中に作成され、後のデプロイフェーズで削除されることに注意してください。

Nginxのドキュメントに概説されている他のディレクティブを指定することができます。

http://wiki.nginx.org/Configuration

他の方のお役に立てれば幸いです。