Quero configurar o controlador de entrada NGINX para aumentar o tamanho do corpo da solicitação do cliente com meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS). Também quero ativar o Compartilhamento de recursos de origem cruzada (CORS) para permitir cabeçalhos adicionais e usar o WebSocket com o controlador de entrada NGINX.
Breve descrição
Escolha uma das seguintes opções de configuração:
- Para aumentar o tamanho do corpo da solicitação do cliente, conclua as etapas na seção Configurar o tamanho máximo do corpo.
- Para ativar o CORS para permitir cabeçalhos adicionais, conclua as etapas na seção Ativar CORS.
- Para usar o WebSocket com o NGINX Ingress Controller, conclua as etapas na seção Usar o WebSocket.
Resolução
Configurar o tamanho máximo do corpo
Se a sua solicitação de tamanho do corpo exceder o tamanho máximo permitido do corpo da solicitação do cliente, o controlador de entrada NGINX retornará um erro HTTP 413. Use o parâmetro client_max_body_size para configurar um tamanho maior:
nginx.ingress.kubernetes.io/proxy-body-size: 8m
Observação: o valor padrão de proxy-body-size é 1 M. Certifique-se de alterá-lo para o tamanho necessário.
Em alguns casos, talvez seja necessário aumentar o tamanho máximo de todos os dados do corpo da postagem e uploads de arquivos. Para PHP, você deve aumentar os valores post_max_size e upload_max_file_size na configuração php.ini.
Ativar o CORS
Para ativar o CORS em uma regra de entrada, adicione a seguinte anotação:
nginx.ingress.kubernetes.io/enable-cors: "true"
O exemplo a seguir mostra que o cabeçalho X-Forwarded-For é aceito:
nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"
Para obter mais informações, consulte Enable CORS no site do Kubernetes.
Usar o WebSocket
O NGINX oferece suporte o WebSocket sem configuração adicional. Para evitar uma conexão fechada, aumente os valores de proxy-read-timeout e proxy-send-timeout.
No exemplo a seguir, 120 segundos estão definidos para o tempo limite de leitura do proxy e o tempo limite de envio do proxy:
nginx.ingress.kubernetes.io/proxy-read-timeout: "120"nginx.ingress.kubernetes.io/proxy-send-timeout: "120"
Observação: o valor padrão das duas anotações anteriores é 60 segundos.
Informações relacionadas
Annotations no site do Kubernetes