Come posso personalizzare la mia configurazione nginx per modificare "client_max_body_size" in Elastic Beanstalk?

2 minuti di lettura
0

Desidero caricare file di grandi dimensioni nel mio ambiente AWS Elastic Beanstalk senza ricevere il messaggio di errore "413 Request Entity Too Large" (413: Entità richiesta troppo grande).

Breve descrizione

Per impostazione predefinita, NGINX ha un limite di 1 MB per i caricamenti di file. Se la dimensione di una richiesta supera il valore configurato, viene restituito l'errore 413 Request Entity Too Large. Per caricare file più grandi di 1 MB, configura la direttiva client_max_body_size nei file di configurazione NGINX.

Importante: M e MB sono espressioni equivalenti per "megabyte". Ad esempio, 2M equivale a 2 MB. Tuttavia, usa solo M nel tuo file di configurazione, poiché MB non è un'espressione valida in un file di configurazione.

Risoluzione

Per configurare client_max_body_size in ambienti Amazon Linux 2, esegui le seguenti operazioni:

1.    Per estendere la configurazione NGINX predefinita di Elastic Beanstalk, aggiungi il file di configurazione con estensione .conf client_max_body_size.conf che include quanto segue:

client_max_body_size 50M;

Nota: nell'esempio precedente, il valore di client_max_body_size è stato portato a 50M. Sostituisci 50 con qualsiasi valore, in base alle tue esigenze.

2.    Copia il file di configurazione con estensione .conf client_max_body_size.conf in una cartella denominata .platform/nginx/conf.d/ nel pacchetto di origine dell'applicazione. La configurazione NGINX di Elastic Beanstalk include automaticamente i file .conf in questa cartella. Se questo percorso non esiste nel tuo pacchetto di origine, assicurati di crearlo. L'esempio seguente mostra la struttura della directory .platform e del file .conf nel file zip dell'applicazione:

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

Il file client_max_body_size.conf ha un percorso simile a questo: my-app/.platform/nginx/conf.d/client_max_body_size.conf.

3.    Implementa il tuo codice insieme alla nuova directory .platform/ come nuova versione dell'applicazione nel tuo ambiente Elastic Beanstalk.

4.    Una volta completata l'implementazione, accedi all'istanza in esecuzione nell'ambiente Elastic Beanstalk. Dopo aver effettuato l'accesso, verifica che le impostazioni sul server NGINX siano applicate. Per farlo, utilizza il seguente comando:

$ 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 UFFICIALE
AWS UFFICIALEAggiornata un anno fa