Como configuro o Controlador de entrada NGINX para aumentar o corpo da solicitação do cliente, ativar o CORS para permitir cabeçalhos adicionais e usar o WebSocket para trabalhar com o Amazon EKS?

Data da última atualização: 10/12/2021

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 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 Controlador de entrada NGINX, conclua as etapas na seção Usar WebSocket.

Resolução

Configurar o tamanho máximo do corpo

Se sua solicitação de tamanho de corpo exceder o tamanho máximo permitido do corpo da solicitação do cliente, o Controlador de entrada NGINX vai 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 do tamanho do corpo do proxy é 1 M. Certifique-se de alterar o número para o tamanho necessário.

Observação: Em alguns casos, pode ser necessário aumentar o tamanho máximo para todos os dados do corpo da postagem e uploads de arquivos. Para o 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"

Você pode encontrar outros cabeçalhos na seção Habilitar CORS (no site do GitHub) da documentação do Controlador de entrada NGINX.

Usar o WebSocket

O NGINX suporta WebSocket (de acordo com o site do NGINX) versões 1.3 ou posteriores, sem exigência. Para evitar uma conexão fechada, você deve aumentar os valores de tempo limite de leitura do proxy e tempo limite de envio do proxy.

No exemplo a seguir, 120 segundos são definidos para o tempo limite de leitura do proxy e 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 é de 60 segundos.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?