¿Cómo puedo configurar NGINX Ingress Controller de modo que el cuerpo de la solicitud del cliente aumente, activar CORS para permitir encabezados adicionales y usar WebSocket con Amazon EKS?

2 minutos de lectura
0

Quiero configurar NGINX Ingress Controller de modo que el tamaño del cuerpo de la solicitud del cliente aumente con mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS). También quiero activar el uso compartido de recursos entre orígenes (CORS) de modo que se permitan encabezados adicionales y usar WebSocket con NGINX Ingress Controller.

Breve descripción

Elija una de las siguientes opciones de configuración:

  • Para aumentar el tamaño del cuerpo de la solicitud del cliente, siga los pasos de la sección Configuración del tamaño de cuerpo máximo.
  • Para activar CORS de modo que se permitan encabezados adicionales, siga los pasos de la sección Activación de CORS.
  • Para usar WebSocket con NGINX Ingress Controller, siga los pasos de la sección Uso de WebSocket.

Solución

Configuración del tamaño de cuerpo máximo

Si su solicitud de tamaño de cuerpo supera el tamaño máximo permitido para el cuerpo de la solicitud del cliente, NGINX Ingress Controller devolverá un error HTTP 413. Utilice el parámetro client_max_body_size para configurar un tamaño mayor:

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

Nota: El valor predeterminado de proxy-body-size es 1 M. No olvide cambiar el número al tamaño que necesite.

En algunos casos, es posible que tenga que aumentar el tamaño máximo de todos los datos del cuerpo de las publicaciones y las subidas de archivos. En el caso de PHP, debe aumentar los valores post_max_size y upload_max_file_size en la configuración de php.ini.

Activación de CORS

Para activar CORS en una regla de Ingress, añada la siguiente anotación:

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

En el siguiente ejemplo se muestra que se acepta el encabezado X-Forwarded-For:

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

Para obtener más información, consulte Enable CORS en el sitio web de Kubernetes.

Uso de WebSocket

NGINX es compatible con WebSocket sin configuración adicional. Para evitar que la conexión se cierre, aumente los valores de proxy-read-timeout y proxy-send-timeout.

En el siguiente ejemplo, se ha definido 120 segundos para proxy read timeout y proxy send timeout:

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

Nota: El valor predeterminado de las dos anotaciones anteriores es de 60 segundos.

Información relacionada

Annotations en el sitio web de Kubernetes

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año