Error decode JSON exrate
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 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.
Existem várias formas de resolver o problema
nginx.conf
.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
.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.
É 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.