Come posso configurare il controller di ingresso NGINX per aumentare il corpo della richiesta del client, attivare CORS per consentire intestazioni aggiuntive e utilizzare WebSocket affinché funzioni con Amazon EKS?

Ultimo aggiornamento: 10/12/2021

Voglio configurare il controller di ingresso NGINX per aumentare le dimensioni del corpo della richiesta del client con il mio cluster Amazon Elastic Kubernetes Service (Amazon EKS). Voglio anche attivare la Condivisione delle risorse multiorigine (CORS) per consentire intestazioni aggiuntive e utilizzare WebSocket con il controller di ingresso NGINX.

Breve descrizione

Scegli una delle seguenti opzioni di configurazione:

  • Per aumentare le dimensioni del corpo della richiesta del client, segui i passaggi nella sezione Configurazione della dimensione massima del corpo.
  • Per attivare CORS per consentire le intestazioni aggiuntive, segui i passaggi nella sezione Attivazione di CORS.
  • Per utilizzare WebSocket con il controller di ingresso NGINX, segui i passaggi nella sezione Utilizzo di WebSocket.

Risoluzione

Configurazione della dimensione massima del corpo

Se la richiesta della dimensione del corpo supera la dimensione massima consentita del corpo della richiesta del client, il controller di ingresso NGINX restituisce un errore HTTP 413. Utilizza il parametro client_max_body_size per configurare una dimensione più grande:

nginx.ingress.kubernetes.io/proxy-body-size: 8m

Nota: il valore predefinito di proxy-body-size è 1 M. Assicurati di modificare il numero nella dimensione desiderata.

Nota: in alcuni casi, potrebbe essere necessario aumentare la dimensione massima per tutti i dati del corpo del post e i caricamenti di file. Per PHP, è necessario aumentare i valori post_max_size e upload_max_file_size nella configurazione php.ini.

Attivazione di CORS

Per attivare CORS in una regola di ingresso, aggiungi la seguente annotazione:

nginx.ingress.kubernetes.io/enable-cors: "true"

L'esempio seguente mostra che l'intestazione X-Forwarded-For è accettata:

nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"

Puoi trovare altre intestazioni nella sezione Abilitazione di CORS (dal sito Web di GitHub) della documentazione del controller di ingresso NGINX.

Utilizzo di WebSocket

NGINX supporta WebSocket (dal sito Web di NGINX) nelle versioni 1.3 o successive, senza requisiti. Per evitare una connessione chiusa, è necessario aumentare i valori proxy-read-timeout e proxy-send-timeout.

Nell'esempio seguente, per il timeout di lettura del proxy e il timeout di invio del proxy sono impostati 120 secondi:

nginx.ingress.kubernetes.io/proxy-read-timeout: "120"
nginx.ingress.kubernetes.io/proxy-send-timeout: "120"

Nota: il valore di default delle due annotazioni precedenti è 60 secondi.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?