Error decode JSON exrate Ошибка cabeçalho do pedido ou cookie demasiado grande Nginx
Formas de pagamento Abuse

Ошибка cabeçalho do pedido ou cookie demasiado grande Nginx

01.02.2024, 23:37

O erro"request header or cookie too large" no Nginx ocorre quando o tamanho dos cabeçalhos dos pedidos ou dos cookies excede o tamanho máximo permitido, que é definido na configuração do servidor. Neste artigo, analisaremos em pormenor por que razão isto acontece.

O que significa o erro Request header or cookie too large no Nginx?

O erro ocorre quando o tamanho dos cabeçalhos de pedido HTTP/HTTPS excede o limite permitido. Por exemplo, o browser está a enviar demasiados cookies ou o pedido enviado para o servidor Web é demasiado grande.

O pedido é normalmente dividido em duas partes: cabeçalhos - onde se encontram as informações gerais e os metadados, e o corpo do pedido. O corpo do pedido, bem como o cabeçalho, podem ser de diferentes tamanhos - tanto pequenos como grandes - e o seu tamanho normalmente não causa quaisquer problemas. No entanto, se as definições do servidor Web tiverem um parâmetro que limite o comprimento do cabeçalho do pedido, é provável que ocorra este erro.

Como resolver o problema?

Existem várias formas de resolver o problema

  1. Aumente o tamanho máximo dos cabeçalhos e cookies na configuração do Nginx. Para fazer isso, adicione as seguintes linhas ao arquivo de configuração nginx.conf.
  2. Limpar os cookies do navegador. Se o problema ocorrer em apenas um computador ou dispositivo, a limpeza do cookie do navegador pode ajudar.
  3. Use um navegador ou dispositivo diferente. Se o problema ocorrer apenas em um navegador ou dispositivo, tente usar um navegador ou dispositivo diferente.
  4. Utilizar um pedido POST em vez de GET. Se o problema ocorrer ao enviar um pedido GET com parâmetros grandes, pode tentar utilizar um pedido POST em vez de GET.
  5. Dividir o pedido em vários pedidos mais pequenos. Se for impossível alterar a configuração do servidor, pode tentar dividir o pedido em vários pedidos mais pequenos, enviando-os sequencialmente.

Para corrigir este erro (se for um administrador do servidor Web Nginx), deve aumentar o tamanho máximo do cabeçalho, alterando o parâmetro large_client_header_buffers. Se for um utilizador comum do sítio Web onde ocorreu este erro, deve aguardar que o administrador do recurso corrija o erro.

Correção por parte do servidor Web Nginx

É necessário ajustar o parâmetro large_client_header_buffers, que tem 2 números, por exemplo 4 e 8 (que são definidos por defeito). O primeiro número é o valor que define o número máximo de buffers, e o segundo número é o tamanho do buffer no qual o cabeçalho do pedido é lido. O segundo parâmetro é definido em kilobytes.

Esta linha é adicionada à secção http do ficheiro de configuração do Nginx ou à secção do servidor para um determinado site. Os ficheiros de configuração do site Nginx são normalmente armazenados em /etc/nginx/conf.d/ ou /etc/nginx/sites-available/ (dependendo de como o Nginx foi instalado - usando repositórios padrão do sistema operativo ou usando o repositório Nginx).

Para ajustar o valor, pode definir os números 8 e 64, adequados para armazenar cabeçalhos de grandes dimensões. O parâmetro terá o seguinte aspeto:

large_client_header_buffers 8 64k;

Uma vez feitas as alterações no ficheiro de configuração, o Nginx deve ser reiniciado com o comando:

sudo systemctl reload nginx

Estes são os métodos para resolver este problema.