Recebo o seguinte erro em meus arquivos de log toda vez que tento fazer upload de um arquivo grande.
a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001
Embora o arquivo seja carregado com sucesso, sempre recebo o erro acima.
Aumentei o client_body_buffer_size
que 1000m
é o que espero que seja o maior arquivo enviado. No entanto, isso é apenas um palpite e, embora eu não receba mais esse erro, estou querendo saber se esse é um valor apropriado para definir para o client_body_buffer_size
?
Agradeceria se alguém pudesse lançar alguma luz sobre esta diretiva e como ela deve ser usada.
Este é um aviso, não um erro. É por isso que foi prefaciado
[warn]
no log.Isso significa que o tamanho do arquivo carregado era maior do que o buffer na memória reservado para uploads.
A diretiva
client_body_buffer_size
controla o tamanho desse buffer.Se você puder ter 1 GB de RAM sempre reservado para o upload ocasional de arquivos, tudo bem. É uma otimização de desempenho para armazenar em buffer o upload na RAM em vez de em um arquivo temporário no disco, embora com uploads tão grandes, alguns segundos extras provavelmente não importem muito. Se a maioria dos seus uploads for pequena, provavelmente será um desperdício.
No final, só você pode realmente tomar a decisão sobre qual é o tamanho apropriado.
Se você não quiser que o NginX armazene o conteúdo do corpo em um arquivo temporário, você pode definir seu config. assim:
Se você definir ambas as configurações no mesmo max. size (em k, M ou G para kB, MB ou GB, respectivamente), você evitará que o NginX crie um arquivo temp. Arquivo.
Para obter mais informações: http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size e http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size