Como editar o nginx.conf para aumentar o upload do tamanho do arquivo

105

Quero aumentar o maximum file sizeque pode ser carregado.
Depois de fazer algumas pesquisas online, descobri que você deve editar o arquivo 'nginx.conf'.
A única maneira de acessar este arquivo atualmente é passando pelo Putty e digitando o comando:

vi /etc/nginx/nginx.conf

Isso abrirá o arquivo, mas tenho 2 perguntas agora:

  1. Como edito este arquivo?
  2. Descobri online que você deve adicionar a seguinte linha de código:

client_max_body_size 8M;

Onde eu colocaria essa linha de código nginx.conf?

Jeff P.
fonte

Respostas:

199

Adicionar client_max_body_size

Agora que você está editando o arquivo, você precisa adicionar a linha ao bloco do servidor, da seguinte maneira;

server {
    client_max_body_size 8M;

    //other lines...
}

Se você estiver hospedando vários sites, adicione-o ao contexto http;

http {
    client_max_body_size 8M;

    //other lines...
}

E também atualize o upload_max_filesizeem seu arquivo php.ini para que você possa enviar arquivos do mesmo tamanho.

Salvando em Vi

Quando terminar, você precisa salvar, isso pode ser feito no vi pressionando a esctecla e digitando :wqe retornando.

Reiniciando Nginx e PHP

Agora você precisa reiniciar o nginx e php para recarregar as configurações. Isso pode ser feito usando os seguintes comandos;

sudo service nginx restart
sudo service php5-fpm restart

Ou qualquer que seja o nome do seu serviço php.

Matt Burrow
fonte
8
Pode não ser uma má ideia adicioná-lo ao http {contexto para que todos os servidores o herdem. E certifique-se que ajuste o seu upload_max_filesizeem php.inipara corresponder à sua configuração nginx. Se você estiver executando o Laravel usando Homestead / Vagrant, esse arquivo está localizado em /etc/php5/fpm/php.ini.
damiani
Sim, esqueci de mencionar que estou usando o Laravel Homestead. Então eu abri '/etc/php5/fpm/php.ini' e encontrei a linha de código 'upload_max_filesize = 2M', então eu quero alterá-la para que '2M' se torne '8M'. Depois de fazer esta edição, eu apenas pressiono 'Ctrl Z' para sair do arquivo e, em seguida, executo 'sudo service nging restart'?
Jeff P.
Você não pressiona ctrl-z. Você precisa salvá-lo com vi pressione esc e digite: wq e pressione enter.
Matt Burrow
2
Saia do editor, prefixe o comando vi com sudo. Igual a; sudo vi /etc/nginx/nginx.conf ou sudo vi /etc/php5/fpm/php.ini
Matt Burrow
2
sudo nginx -s reloadrecarrega a configuração sem reiniciar o nginx
Vincnetas
12

Caso se esteja usando o proxy nginx como um contêiner do docker (por exemplo, jwilder / nginx-proxy ), há a seguinte maneira de configurar client_max_body_size(ou outras propriedades):

  1. Crie um arquivo de configuração personalizado, por exemplo, /etc/nginx/proxy.confcom um valor correto para esta propriedade
  2. Ao executar um contêiner, adicione-o como um volume, por exemplo -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Pessoalmente, achei essa forma bastante conveniente, pois não há necessidade de construir um contêiner personalizado para alterar as configurações. Não sou afiliado jwilder/nginx-proxy, estava apenas usando no meu projeto, e a forma descrita acima me ajudou. Espero que ajude outra pessoa também.

Vladimir Salin
fonte
1
Este projeto relacionado: github.com/evertramos/… (o nginx-proxy do jwilder combinado com a geração do certificado de lets encrypt) tem um script bacana para fazer isso e tem essa opção pré-configurada (para 100M). Crie o .env da amostra; descomente a linha #USE_NGINX_CONF_FILES=true; correr start.she finalmente docker-compose up. (Não sou afiliado a nenhum dos projetos).
glaux
2

Você pode aumentar client_max_body_size e upload_max_filesize + post_max_size o dia todo. Sem ajustar o tempo limite de HTTP, ele nunca funcionará.

// Você precisa ajustar isso, e provavelmente no lado do PHP também. client_body_timeout 2min // 1GB fileupload

Humano Digital
fonte
Mais informações sobre como ajustar seu servidor da web aqui: doc.owncloud.com/server/admin_manual/configuration/files/…
Digital Human
2

Primeiro, navegue no caminho do php.ini

sudo vi /etc/php/7.2/fpm/php.ini

então, próxima mudança

upload_max_filesize = 999M
post_max_size = 999M

então ESC-->:wq

Agora, por último, cole este comando,

sudo systemctl restart php7.2-fpm.service

você terminou.

vasu patel
fonte