Formas de pagamento Abuse

O que significa o erro 413 e como o corrigir

07.07.2024, 23:21

Em casos raros, mas acontece que, ao carregar ficheiros de grandes dimensões para um sítio Web, o servidor Web Nginx devolve um erro - 413 Request Entity Too Large (Entidade de pedido demasiado grande). O erro aparece quando se tenta carregar um ficheiro para o servidor que é demasiado grande do que o permitido no servidor. Mais adiante, analisaremos a descrição do erro 413 Request Entity Too Large e os métodos para o corrigir no servidor Web Nginx.

O que significa o erro 413

O erro 413 ou Request Entity Too Large significa "Request Entity Too Large" (Entidade de pedido demasiado grande) ou, por outras palavras, a quantidade de dados transferidos é demasiado grande. O erro é devolvido quando o servidor não pode processar um pedido porque o corpo do pedido (ou ficheiro grande) é demasiado grande. Uma captura de ecrã do erro é mostrada abaixo:

Por predefinição, o Nginx tem um limite de tamanho do corpo do pedido de 1 MB. Se o pedido exceder o valor definido, será apresentado o erro 413 Request Entity Too Large (Entidade do pedido demasiado grande).

Porque é que o erro aparece

O erro 413 "Entidade de pedido demasiado grande" ocorre quando um servidor Web rejeita um pedido porque o tamanho do corpo do pedido excede o tamanho máximo permitido definido no servidor. Isto significa que os dados enviados no pedido (por exemplo, ao carregar um ficheiro para o servidor) são demasiado grandes para serem processados.

Resolver o problema:

  1. Alterando as definições do servidor: pode tentar aumentar o tamanho máximo de pedido permitido no servidor. Para tal, pode ser necessário alterar os ficheiros de configuração do servidor Web - Apache, Nginx.
  2. Reduzindo o tamanho dos dados: se possível, tente reduzir o tamanho dos dados enviados no pedido. Por exemplo, se estiver a carregar um ficheiro, tente reduzir o seu tamanho.
  3. Utilizando outros métodos de transferência de dados: em vez de um pedido grande, pode dividir os dados em vários pedidos mais pequenos e enviá-los aos poucos.
  4. Utilizar outros métodos de transferência de ficheiros: Pode utilizar serviços especializados de partilha de ficheiros ou o FTP para transferir ficheiros de grandes dimensões.

Se não controlar o servidor para o qual está a enviar o pedido, contacte o administrador do servidor ou o suporte técnico para obter assistência na resolução do erro 413 "Entidade do pedido demasiado grande".

Como corrigir

Para corrigir o erro 413, deve aumentar o limite permitido. Pode aumentar o tamanho do corpo do pedido e, consequentemente, o tamanho dos ficheiros carregados, utilizando client_max_body_size. A opção está disponível para uso nas diretivas http, server ou location no arquivo de configuração /etc/nginx/nginx.conf ou no arquivo de configuração do site.

Abra o arquivo de configuração nginx.conf usando qualquer editor de texto:

$ sudo nano /etc/nginx/nginx.conf

Digite uma linha na secção http:

$ client_max_body_size 100M

100 - o tamanho máximo do ficheiro em megabytes que pode ser carregado no sítio Web, neste caso 100 megabytes. Se existirem vários sítios web à sua disposição e for necessário restringir o carregamento a todos os sítios web de uma só vez, então a linha client_max_body_size deve ser introduzida na secção de blocos http.

Se for necessário restringir o download apenas para um determinado site, então a linha client_max_body_size deve ser adicionada ao bloco do servidor do arquivo de configuração do site, que por padrão está localizado em /etc/nginx/sites-available/file_name_with_configuration:

Quando um limite de download precisa ser definido apenas para uma seção específica de um site, a string client_max_body_size deve ser adicionada à diretiva location do arquivo de configuração do site, que está localizado por padrão em /etc/nginx/sites-available/file_name_with_configuration:

Uma vez feitas as alterações nos ficheiros de configuração, guarde-os, feche o editor de texto e verifique se existem erros na sintaxe dos ficheiros de configuração utilizando o comando:

$ sudo nginx -t

Poderá ver as seguintes linhas:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Isto significa que não existem erros. Caso contrário, verá uma descrição do erro, o nome do ficheiro onde o erro foi encontrado e o número da linha. Depois de fazer quaisquer alterações nos ficheiros de configuração do Nginx, deve reiniciá-los utilizando o comando:

$ sudo systemctl reload nginx

Este artigo abordou um erro no Nginx conhecido como 413 Request Entity Too Large, que ocorre ao carregar ficheiros grandes para um site. Além de descrever o erro em si, também foram descritas as etapas para corrigir o erro editando os arquivos de configuração do Nginx.