Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
504 en carga larga con Docker Nginx

Pasé tanto tiempo tratando de resolver esto, es ridículo...

Necesito subir archivos de hasta 15Gb.

nginx.conf:

 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; keepalive_timeout 800s; include /etc/nginx/conf.d/*.conf; }

Configuración personalizada de nginx

 server { listen 80; listen [::]:80; server_name example.com; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; if ($http_x_forwarded_proto != "https") { rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent; } root /var/www/webroot; index index.php; client_body_timeout 800s; client_header_timeout 800s; client_max_body_size 15000m; client_body_temp_path /store/nginx-tmp 1 2; #fastcgi_buffers 8 1600k; #fastcgi_buffer_size 3200k; add_header X-Frame-Options sameorigin; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass web:9000; fastcgi_index index.php; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_connect_timeout 800s; fastcgi_read_timeout 800s; fastcgi_send_timeout 800s; #proxy_connect_timeout 800s; #proxy_send_timeout 800s; #proxy_read_timeout 800s; #send_timeout 800s; } }

Las líneas comentadas son configuraciones adicionales que probé. client_body_temp_path /store/nginx-tmp 1 2; para que Nginx use un volumen montado para almacenar archivos temporales si es necesario porque la instancia EC2 solo tiene un disco de 8 Gb.

Configuración de PHP relevante:

 upload_max_filesize = 15000M post_max_size = 15000M max_execution_time = 0 request_terminate_timeout = 800s

Estoy ejecutando una aplicación CakePHP, en caso de que ayude a resolver este caso.

Cuando subo un archivo grande, obtengo un 504 después de 2 a 2,5 minutos. La subida está incompleta ($_FILES['file']['error'] = 3, UPLOAD_ERR_PARTIAL)

No hay nada en los registros de PHP. Los registros de Nginx solo tienen esto:

 2020/04/17 06:38:04 [warn] 479#479: *943 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000007, client: 172.31.20.155, server: example.com, request: "POST /materials/add/38999 HTTP/1.1", host: "example.com", referrer: "https://example.com/jobs/view/38999"

¿Alguien puede salvar mi cordura aquí?

Gracias,

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda