Como aumentar o tamanho de upload de arquivos no Nginx?

Publicado 13 de outubro de 2024

Problema: Limitações de Tamanho de Upload de Arquivos no Nginx

O Nginx, um servidor web, possui limites padrão de tamanho de upload de arquivos que podem impedir transferências de arquivos grandes. Esse limite pode causar problemas ao fazer upload de documentos extensos, arquivos de mídia ou conjuntos de dados por meio de aplicações web em servidores Nginx.

Localizando o Arquivo de Configuração do Nginx

Localizações Comuns do Arquivo de Configuração do Nginx

O arquivo de configuração do Nginx geralmente está em um destes locais:

  • /etc/nginx/nginx.conf
  • /usr/local/nginx/conf/nginx.conf

Estes são os caminhos padrão para o arquivo de configuração principal do Nginx. A localização exata pode variar dependendo de como o Nginx foi instalado e do seu sistema operacional.

Dica: Verificar o Gerenciador de Pacotes

Se você instalou o Nginx usando um gerenciador de pacotes como apt ou yum, muitas vezes é possível encontrar a localização do arquivo de configuração verificando as informações do pacote. Por exemplo, em sistemas Ubuntu ou Debian, você pode usar:

dpkg -L nginx | grep nginx.conf

Este comando lista todos os arquivos instalados pelo pacote Nginx e filtra pelo arquivo nginx.conf.

Solução de Problemas para Arquivos de Configuração Ausentes

Se você não conseguir encontrar o arquivo de configuração do Nginx nos locais esperados, tente estas etapas:

  1. Verifique a instalação do Nginx: Execute nginx -v para verificar se o Nginx está instalado e ver sua versão.

  2. Use ferramentas de linha de comando para procurar arquivos de configuração:

    • Procure por nginx.conf:
      sudo find / -name nginx.conf
    • Procure por qualquer arquivo com "nginx" no nome:
      sudo find / -name "*nginx*"

Se essas etapas não ajudarem a encontrar o arquivo de configuração, o Nginx pode não estar instalado no seu sistema ou pode estar em uma localização não padrão.

Modificando as Configurações do Nginx para Aumentar o Tamanho de Upload

Editando o Arquivo de Configuração do Nginx

Para aumentar o limite de tamanho de upload de arquivos no Nginx, você precisa editar o arquivo de configuração do Nginx:

  1. Abra o arquivo de configuração com um editor de texto:

    sudo nano /etc/nginx/nginx.conf

    Use o caminho correto se seu arquivo de configuração estiver em um local diferente.

  2. Encontre a seção para fazer alterações. Você pode colocar a diretiva client_max_body_size no contexto http, server ou location. Frequentemente está no bloco server.

Ajustando o Parâmetro client_max_body_size

Para alterar o tamanho máximo permitido do corpo da requisição do cliente:

  1. Adicione ou modifique a diretiva client_max_body_size:

    client_max_body_size 100M;

    Isso define o tamanho máximo de upload para 100 megabytes. Altere esse valor conforme necessário.

  2. Se a diretiva já existir, altere o valor. Se não, adicione a linha à seção correta do seu arquivo de configuração.

  3. Use M para megabytes ou G para gigabytes. Não use MB ou GB, pois estes não funcionarão.

  4. Você pode definir limites diferentes para diferentes localizações:

    location /upload {
       client_max_body_size 500M;
    }

    Isso define um limite de 500MB para a localização /upload.

  5. Salve as alterações e saia do editor de texto.

Teste sua configuração e recarregue o Nginx após fazer essas alterações. Certifique-se de que suas configurações PHP (se aplicável) correspondam ao seu novo limite de tamanho de upload do Nginx.

Dica: Verificar configurações de upload do PHP

Se você estiver usando PHP com Nginx, lembre-se de ajustar também as configurações de upload do PHP. Edite seu arquivo php.ini e modifique estes valores:

upload_max_filesize = 100M
post_max_size = 100M

Substitua 100M pelo seu limite desejado. Reinicie o PHP-FPM após fazer essas alterações.

Testando e Aplicando a Nova Configuração

Verificando a Sintaxe da Configuração do Nginx

Após alterar o arquivo de configuração do Nginx, verifique se há erros de sintaxe antes de aplicar as mudanças. Use este comando para verificar a configuração:

sudo nginx -t

Este comando testa os arquivos de configuração do Nginx e relata erros. Se o teste passar, você verá uma mensagem indicando que o teste de configuração foi bem-sucedido e a sintaxe está ok.

Se houver erros, o comando mostrará detalhes sobre o problema e sua localização no arquivo de configuração. Corrija esses erros antes de continuar.

Dica: Faça Backup da Sua Configuração

Antes de fazer alterações na sua configuração do Nginx, crie um backup do seu arquivo de configuração atual. Isso permite que você reverta rapidamente as alterações, se necessário:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

Recarregando ou Reiniciando o Nginx

Depois de confirmar que a sintaxe da configuração está correta, aplique as novas configurações. Existem dois métodos principais:

  1. Recarregar o Nginx: Este método não interrompe as conexões ativas. Use este comando:

    sudo nginx -s reload

    Ou, se você estiver usando systemd:

    sudo systemctl reload nginx
  2. Reiniciar o Nginx: Se um recarregamento não aplicar todas as alterações, pode ser necessário reiniciar o Nginx. Isso interromperá todas as conexões ativas:

    sudo systemctl restart nginx

Após recarregar ou reiniciar o Nginx, o novo limite de tamanho de upload de arquivos deve estar ativo. Teste sua função de upload de arquivos para confirmar que arquivos maiores agora podem ser enviados.

Monitore o desempenho do seu servidor após aumentar o limite de tamanho de upload, pois lidar com uploads de arquivos maiores pode exigir mais recursos do servidor.