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:
Gracias por aclarar esto
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:
xxdomain.com como host principal e img.xxdomain.com como host independiente para las descargas de imágenes.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.