Wie behebe ich den Fehler „413 Request Entity Too Large“, wenn ich Dateien in meine Elastic Beanstalk-Umgebung hochlade?

Lesedauer: 2 Minute
0

Ich möchte den Wert „client_max_body_size“ in meiner NGINX-Konfiguration anpassen, damit ich große Dateien in meine AWS Elastic Beanstalk-Umgebung hochladen kann.

Lösung

Das NGINX-Standardlimit für das Hochladen von Dateien beträgt 1 MB. Um Dateien hochzuladen, die größer als 1 MB sind, aktualisieren Sie den Wert client_max_body_size.

Wichtig: M und MB sind äquivalente Ausdrücke für „Megabyte“. 2M entspricht beispielsweise 2 MB. Die NGINX-Konfiguration akzeptiert jedoch nur „M“ als gültigen Syntaxwert. Zwischen der Ziffer und dem Buchstaben „M“ befindet sich kein Leerzeichen.

Anmerkung: Informationen zum Anpassen der Standard-Proxykonfiguration für alle Plattformversionen von Amazon Linux 2 und Amazon Linux 2023 finden Sie unter Erweitern der Elastic Beanstalk Linux-Plattformen.

Gehen Sie wie folgt vor, um den Wert client_max_body_size in Amazon Linux 2 und Amazon Linux 2023 zu konfigurieren:

  1. Erstellen Sie eine .conf-Konfigurationsdatei mit dem Namen client_max_body_size.conf, die Folgendes enthält:

    client_max_body_size 50M;
  2. Kopieren Sie die .conf-Datei client_max_body_size.conf in einen Ordner mit dem Namen .platform/nginx/conf.d/ in Ihrem Anwendungsquellpaket.

    Anmerkung: Die Elastic Beanstalk NGINX-Konfiguration beinhaltet automatisch .conf-Dateien im Ordner .platform. Stellen Sie sicher, dass Sie diesen Pfad erstellen, falls die .conf-Datei in Ihrem Quellpaket nicht existiert.

Das folgende Beispiel zeigt die Struktur des Verzeichnisses .platform und der .conf-Datei in der Zip-Datei der Anwendung auf der Java SE-Plattform. Der Ordner .platform muss für alle Linux-Plattformen im Stammverzeichnis Ihres Anwendungsquellpakets platziert werden. Weitere Informationen zum Bündeln von Anwendungen finden Sie in der Dokumentation für Ihre Plattform.

~/my-app.zip/
|-- web.jar
|-- Procfile
|-- readme.md  
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   `-- conf.d/
    |       `-- client_max_body_size.conf
  1. Stellen Sie die neue Anwendungsversion in Ihrer Elastic Beanstalk-Umgebung bereit.
  2. Verwenden Sie SSH, um sich bei der Amazon Elastic Compute Cloud (Amazon EC2) -Instance anzumelden, die in Ihrer Elastic Beanstalk-Umgebung ausgeführt wird.
  3. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die NGINX-Konfigurationssyntax korrekt ist und ob die am client_max_body_size-Wert vorgenommenen Änderungen angewendet werden.
    $ 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;

Ähnliche Informationen

Erstellen eines Anwendungsquellpakets

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten