Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

152
Views
forma eficiente de enviar archivos usando express.js

Aquí hay una pregunta que ni siquiera sé cómo buscarla en la web y probablemente sea una pregunta tonta:

¿Sería más eficiente para un servidor web establecer solicitudes de descarga y flujos de archivos en diferentes puertos como 21 (ftp) que usar los puertos predeterminados 80/443 (http/https)? o incluso usar otro servidor para manejar estas solicitudes para que ya no haya mucho tráfico en las conexiones http/https. ¿Es posible hacer tal acción?

En caso afirmativo, ¿cómo puedo establecer esta configuración en Express.js? y si no, ¿cuál es la forma habitual de gestionar las descargas pesadas?

Sé que es posible enviar un archivo a través del navegador del usuario usando un objeto de respuesta como este:

 app.get('/download', function(req, res){ res.download('image.jpg'); }

Y hasta donde yo sé, usa http/https. Quiero saber si es posible configurar esto en el puerto 21 manualmente.

Así que hay dos preguntas:

  1. ¿Es eficiente manejar descargas en diferentes puertos?
  2. ¿Cómo es posible establecer respuestas en diferentes puertos?

Gracias por aclarar esto

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Poner las descargas en un puerto diferente no hace una diferencia en la eficiencia del servidor o escala por sí solo.

Lo que ayuda es mover la descarga de archivos estáticos fuera del proceso node.js a otro proceso o, en casos de gran escala, a otro host. En todos los casos, no agregaría la complicación de procesos adicionales hasta que haya demostrado que realmente tiene un problema con la escala y necesita agregar esa complejidad adicional. Los cuellos de botella de escala a menudo no están donde crees que están, por lo que agregar complejidad a un proyecto para mejorar la escala sin medir primero dónde están realmente los cuellos de botella suele ser un esfuerzo desperdiciado.

Cambiar a un puerto diferente no aumenta la escalabilidad por sí solo. No son los puertos los que tienen límites de escala. Son procesos y hosts. Por lo tanto, puede agregar otro proceso HTTP (y quedarse con HTTP) para agregar con éxito un proceso y aumentar la escala.

Una vez que haya demostrado que realmente tiene un cuello de botella de escala con descargas estáticas, aquí hay algunas cosas que puede hacer con sus descargas estáticas para aumentar la escala de descarga:

  1. Agrupe su aplicación para que tenga múltiples procesos de node.js que contribuyan a la escala de su aplicación.
  2. Utilice un proxy especialmente creado como NGINX y configúrelo para manejar sus descargas estáticas antes de que lleguen a su proceso de node.js. En esa configuración, el proxy NGINX intercepta las solicitudes de descarga estática y las maneja en su proceso mientras pasa otras solicitudes a su servidor node.js.
  3. Use un CDN (un servicio especialmente diseñado para descargas estáticas). Para bibliotecas comunes como jQuery, ya existen CDN disponibles públicamente que puede usar. El uso de estos también aumentará la probabilidad de que su cliente ya haya almacenado en caché el archivo relevante (porque algún otro sitio web que usaron estaba usando el mismo archivo en el mismo CDN).
  4. Implemente su propio host adicional para descargas estáticas. Por ejemplo, verá algunos sitios web a gran escala que utilizan xxdomain.com como host principal e img.xxdomain.com como host independiente para las descargas de imágenes.
  5. Asegúrese de que sus archivos/servidor estáticos tengan la configuración/configuración adecuada para que los navegadores de los clientes los almacenen en caché de manera adecuada. Puede probar esto simplemente recargando una página en un navegador cliente y examinando la pestaña de red en el depurador de Chrome para ver si los archivos que deberían haberse almacenado en caché se almacenaron en caché y viceversa.

En general, desea evitar el uso de puertos que no sean el 80 o el 442 para el tráfico web porque es posible que muchas infraestructuras de red (en particular, los entornos corporativos estrictamente controlados) no permitan que los usuarios usen otros puertos para el tráfico web.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!