Je souhaite configurer NGINX Ingress Controller pour augmenter la taille du corps de la demande du client avec mon cluster Amazon Elastic Kubernetes Service (Amazon EKS). Je souhaite également activer le partage des ressources entre origines multiples(CORS) pour autoriser des en-têtes supplémentaires et utiliser WebSocket avec NGINX Ingress Controller.
Brève description
Choisissez l’une des options de configuration suivantes :
- Pour augmenter la taille du corps de la demande du client, procédez comme indiqué dans la section Configurer la taille maximale du corps.
- Pour activer CORS afin d’autoriser des en-têtes supplémentaires, suivez les étapes de la section Activer CORS.
- Pour utiliser WebSocket avec NGINX Ingress Controller, procédez comme indiqué dans la section Utiliser WebSocket.
Résolution
Configurer la taille maximale du corps
Si votre demande de taille de corps dépasse la taille maximale autorisée pour le corps de la demande du client, NGINX Ingress Controller renvoie une erreur HTTP 413. Utilisez le paramètre client_max_body_size pour configurer une taille plus grande :
nginx.ingress.kubernetes.io/proxy-body-size: 8m
Remarque : la valeur par défaut du champ proxy-body-size est de 1 000. Veillez à modifier la valeur en fonction de la taille dont vous avez besoin.
Dans certains cas, vous devrez peut-être augmenter la taille maximale pour toutes les données du corps de la publication et les chargements de fichiers. Pour le champ PHP, vous devez augmenter les valeurs post_max_size et upload_max_file_size 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’en-tête X-Forwarded-For est accepté :
nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"
Pour en savoir plus, consultez la page Enable CORS du site Web Kubernetes.
Utiliser WebSocket
NGINX prend en charge WebSocket sans configuration supplémentaire. Pour éviter une connexion fermée, augmentez les valeurs proxy-read-timeout et proxy-send-timeout.
Dans l’exemple suivant, la valeur 120 secondes est définie pour les champs délai de lecture proxy et délai d’envoi 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.
Informations connexes
Annotations sur le site Web Kubernetes