Erro upload arquivos do educacenso acima de 250KB

boa tarde gente não consigo resolvar este erro no nginx arquivo de 250kb da erro [

504 Time-out -

](https://discourse.roots.io/t/504-time-out-upstream-timed-out/11418)

@IsaelCoelho você precisará alterar o Nginx adicionando as diretivas fastcgi_read_timeout e fastcgi_read_timeout com valores que se adequem a sua necessidade.

No caso de estar utilizando Docker, é o arquivo docker/nginx/default.conf e você precisará fazer um novo build da imagem com o comando docker-compose build.

@edersoares Como ficaria essa config para suportar arquivos maiores que 15 mega e uns timeout de 5 min?

eu alterei meu timeout para 1 hora subi os arquivos depois retornei o timeout para o valor padrão.

@marcos não saberia te dizer, o melhor seria você testar o que se adequa a sua necessidade.

Porém, 15 MB é muita informação, você pode quebrar este arquivo em várias partes, assim o upload é mais rápido tal como o processamento.

Vou pedir para o @MatheusNicoski descrever como fazer.

2 curtidas

Eu consegui importar os dados do CENSO, tive problemas com timeout e tamanho de arquivo.

Para o problema de tamanho de arquivo, aqui tem a solução: https://pt.stackoverflow.com/questions/41619/enviando-arquivos-no-nginx-erro-413-request-entity-too-large

2 curtidas

Bom dia!

Pode fazer um script que quebre o arquivo do censo em novos arquivos a cada nova linha que começa com 00, que se trata do registro de uma nova escola e seus dados (pessoas, alunos, matriculas …). Então nesses arquivos irão conter registros 00, 10, 20, … ,60. E então começa um novo arquivo com um novo registro 00 e assim por diante.

Nao entendi, ai no caso vc repete as diretivas? to com esse problema faz tempo mais so hoje to aqui tentando resolver.

SERIA ASSIM PRA CONFIGURACAO DE 5 MINITOS, NESSE MEU ARQUIVO NAO TINHA ESSA DIRETIVA, TIVE QUE INCLUIR, TA CERTO ISSO? PESSOAL.
nano /var/www/html/docker/nginx/default.conf
location ~ .php {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php-fpm;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 5m;
}

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

}

@marcioro

Coloque estas diretivas no configuração server

    client_body_buffer_size 56K;
    client_header_buffer_size 32k;
    client_max_body_size 15m;
    large_client_header_buffers 8 128k;
    fastcgi_buffers 8 56k;
    fastcgi_buffer_size 32k;
    fastcgi_read_timeout 99999;
1 curtida

Adicionei as diretivas… mais ta dando erro no comando

Depois tenho que rodar esse comando docker-compose build em algumas pasta especifica ou nao? Porque deu esse erro ai.

Nessa pasta tb deu erro, lembro que to num VPS Locaweb
cd /var/www/html/docker/nginx/

Pessoal assim ta meu arquivo configurado, mais continua com problema na importacao do educacenso, ta igual a de 1 colega aqui do forum, disse que no dele funciona normal, e no meu nao… sera o q ta acontecendo no meu i-educar, porque nao to tentando importar nenhum arquivo com mais de 1M??? meu maior arquivo tem 335 kb… Tem uma coisa que notei desde o inicio, apesar do erro, ele faz sim a importacao, porem nao faz a importacao total do arquivo, esquisito…alguem pode me ajudar??? por favor.

server {

index index.php index.html;
server_name ieducar.conceicaodoaraguaia.pa.gov.br www.ieducar.conceicaodoaraguaia.pa.gov.br;
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
client_max_body_size 5M;

location ~ ^/intranet/?$ {
    rewrite ^.*$ /intranet/index.php redirect;
}

location ~ /module/(.*)/(styles|scripts|imagens)/(.*) {
    rewrite ^/module/(.*)/(imagens|scripts|styles)/(.*)$ /intranet/$2/$3 break;
}

location ~ /module/(.*)/(.*) {
    rewrite ^/module/(.*/)(.*intranet/.*)$ /$2 redirect;
    rewrite ^/module/(.*/)(.*index\.php)$ /$2 redirect;
    rewrite ^/module/(.*/)(.*logof\.php)$ /intranet/logof.php redirect;
    rewrite ^/module/(.*/)(.*meusdados\.php)$ /intranet/meusdados.php redirect;
    rewrite ^/module/(.*/)(.*_xml.*)(\.php)$ /intranet/$2.php redirect;
    rewrite ^/module/(.*/)(.*erro_banco\.php)$ /intranet/erro_banco.php redirect;
    rewrite ^/module/(.*/)(.*educar_pesquisa_cliente_lst\.php)$ /intranet/educar_pesquisa_cliente_lst.php redirect;
    rewrite ^/module/(.*/)(.*educar_pesquisa_obra_lst\.php)$ /intranet/educar_pesquisa_obra_lst.php redirect;
    rewrite ^/module/(.*)$ /module/index.php last;
}

location ~ ^(/intranet.*\.php|/modules.*\.php|/module/) {
    try_files /index.php =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_read_timeout 7200s;
}

location ~ \.php {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_read_timeout 7200s;
}

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

}

Essa solução não resolveu.

Você deve ajustar suas configurações conforme o seu ambiente.

Se teu erro é o 413, a solução postada pelo Robson deve resolver sim.

O exemplo postado pelo marcioro também é uma ótima referência.

Os valores vão depender das tuas necessidades.

Então, mesmo seguindo todas as sugestões, não consegui resolver.
Decidimos desmembrar o arquivo de importação, assim conseguimos importar.

Para importar arquivos muito grande é necessário utilizar o Horizon, pra isso leia a documentação do framework: Laravel Horizon - Laravel - The PHP Framework For Web Artisans