es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La conexión aguas arriba se cerró prematuramente mientras se leía aguas arriba (archivos grandes).

Entonces, actualmente estoy teniendo un pequeño problema. Sirvo archivos grandes en mi tienda de comercio electrónico (woocommerce), archivos de alrededor de 10-30GB, utilizamos x-accel-redirect/senfile para eso.
Algunos usuarios se han quejado de que las descargas se interrumpen alrededor de 1 GB de tiempo.
He revisado los registros de nginx y encontré estos errores.

upstream prematurely closed connection while reading upstream

y

upstream sent too big header while reading response header from upstream

Hasta ahora he descubierto que esto tiene que ver con el proxy_buffering, ¿verdad? También creo que encontré una solución para esto.

proxy_max_temp_file_size 0; 
proxy_buffering off;

¿Esto resolvería el problema de la interrupción de la descarga o es la solución equivocada?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en nginx, proxy, descarga y aborto, puedo sugerir que los errores mencionados en los registros de nginx indican que la conexión se cerró prematuramente mientras se leía el recurso aguas arriba y se envió una cabecera demasiado grande al leer la cabecera de respuesta del recurso aguas arriba. Estos errores podrían ser causados por la configuración de proxy_buffering. Para abordar este problema, se recomienda modificar la siguiente configuración para nginx:

    proxy_max_temp_file_size 0;
    proxy_buffering off;
    

    Estas configuraciones deben mantenerse para desactivar el almacenamiento en búfer de las respuestas del servidor proxy. Esto evitará que se cierren las conexiones prematuramente o que se envíen cabeceras demasiado grandes. Al desactivar el almacenamiento en búfer y configurar el tamaño máximo de archivo temporal en cero, la respuesta se transmitirá directamente al cliente en lugar de almacenarse en búfer, mejorando así la experiencia de descarga para los usuarios.

    Por lo tanto, aplicar estas configuraciones a la configuración de nginx debería solucionar el problema de las descargas que se interrumpen para archivos grandes en la tienda de comercio electrónico.

Comments are closed.