Wie passe ich meine Nginx-Konfiguration an, um die „client_max_body_size“ in Elastic Beanstalk zu ändern?

Lesedauer: 2 Minute
0

Ich möchte große Dateien in meine AWS-Elastic-Beanstalk-Umgebung hochladen, ohne die Fehlermeldung „413 Request Entity Too Large“ zu erhalten.

Kurzbeschreibung

Standardmäßig hat NGINX ein Limit von 1 MB für Datei-Uploads. Wenn die Größe einer Anfrage den konfigurierten Wert überschreitet, wird der Fehler 413 Request Entity Too Large zurückgegeben. Um Dateien hochzuladen, die größer als 1 MB sind, konfigurieren Sie die Anweisung client_max_body_size in den NGINX-Konfigurationsdateien.

Wichtig: M und MB sind äquivalente Ausdrücke für „Megabyte“. Beispielsweise entsprechen 2 M 2 MB. Verwenden Sie jedoch nur M in Ihrer Konfigurationsdatei, da MB in einer Konfigurationsdatei nicht gültig ist.

Lösung

Gehen Sie wie folgt vor, um client_max_body_size in Amazon-Linux-2-Umgebungen zu konfigurieren:

1.    Um die NGINX-Standardkonfiguration von Elastic Beanstalk zu erweitern, fügen Sie die .conf-Konfigurationsdatei client_max_body_size.conf hinzu, die Folgendes enthält:

client_max_body_size 50M;

Hinweis: Im vorherigen Beispiel wurde der Wert von client_max_body_size auf 50 M aktualisiert. Ersetzen Sie 50 gemäß Ihren Anforderungen durch einen beliebigen Wert.

2.    Kopieren Sie die .conf-Konfigurationsdatei client_max_body_size.conf in einen Ordner namens .platform/nginx/conf.d/ in Ihrem Anwendungsquellpaket. Die Elastic-Beanstalk-NGINX-Konfiguration schließt automatisch .conf-Dateien in diesem Ordner ein. Stellen Sie sicher, dass Sie diesen Pfad erstellen, falls er in Ihrem Quellpaket nicht vorhanden ist. Das folgende Beispiel zeigt die Struktur des Verzeichnisses .platform und der Datei .conf in der ZIP-Datei der Anwendung:

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

Die Datei client_max_body_size.conf hat einen Pfad wie diesen: my-app/.platform/nginx/conf.d/client_max_body_size.conf.

3.    Stellen Sie Ihren Code und das neue .platform/-Verzeichnis zusammen als neue Anwendungsversion in Ihrer Elastic-Beanstalk-Umgebung bereit.

4.    Melden Sie sich nach Abschluss der Bereitstellung bei der Instance an, die in der Elastic-Beanstalk-Umgebung ausgeführt wird. Überprüfen Sie nach dem Anmelden, ob die Einstellungen für den NGINX-Server übernommen wurden. Führen Sie dazu den folgenden Befehl aus:

$ 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 OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr