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?

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.


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.


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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.