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 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).
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:
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".
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.