Comment configurer le contrôleur d'entrée NGINX pour augmenter le corps de requête du client, activer CORS pour autoriser des entêtes supplémentaires et utiliser WebSocket pour travailler avec Amazon EKS ?

Date de la dernière mise à jour : 2021-12-10

Je souhaite configurer le contrôleur d'entrée NGINX pour augmenter la taille du corps de requête du client avec mon cluster Amazon Elastic Kubernetes Service (Amazon EKS). Je souhaite également activer le partage des ressources d'origine croisée (CORS) pour autoriser des entêtes supplémentaires et utiliser WebSocket avec le contrôleur d'entrée NGINX.

Brève description

Choisissez l'une des options de configuration suivantes :

  • Pour augmenter la taille du corps de requête du client, suivez les étapes de la section Configurer la taille maximale du corps.
  • Pour activer CORS afin d'autoriser des entêtes supplémentaires, suivez les étapes de la section Activer CORS.
  • Pour utiliser WebSocket avec le contrôleur d'entrée NGINX, suivez les étapes de la section Utiliser WebSocket.

Solution

Configurer la taille maximale du corps

Si votre requête de taille de corps dépasse la taille maximale autorisée du corps de requête du client, le contrôleur d'entrée NGINX renvoie une erreur HTTP 413. Utilisez le paramètre client_max_body_size pour configurer une taille supérieure :

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

Remarque : La valeur par défaut de la taille-du-corps-du-proxy est 1 M. Assurez-vous de remplacer le nombre par la taille dont vous avez besoin.

Remarque : Dans certains cas, vous devrez peut-être augmenter la taille maximale de toutes les données du corps de publication et de tous les chargements de fichiers. Pour PHP, vous devez augmenter les valeurs taille_max_publication et charger_taille_max_fichier dans la configuration php.ini.

Activer CORS

Pour activer CORS dans une règle d'entrée, ajoutez l'annotation suivante :

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

L'exemple suivant montre que l'entête X-Transféré-pour est accepté :

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

Vous pouvez trouver d'autres entêtes dans la section Activer CORS (depuis le site Web GitHub) de la documentation du contrôleur d'entrée NGINX.

Utilisez WebSocket

NGINX prend en charge WebSocket (depuis le site Web NGINX) versions 1.3 ou ultérieures, sans exigence. Pour éviter une connexion fermée, vous devez augmenter les valeurs du délai-d-attente-de-lecture-du-proxy et du délai-d-expiration-d-envoi-du-proxy.

Dans l'exemple suivant, 120 secondes sont définies pour ledélai de lecture du proxy et le délai d'envoi du proxy :

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

Remarque : La valeur par défaut des deux annotations précédentes est de 60 secondes.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?