Saltar al contenido

Descargar archivos grandes usando Nginx con Docker

Hay veces que tenemos que descargar grandes archivos como copias de seguridad de bases de datos y enormes archivos de registro de nuestros servidores. Típicamente usamos SSH (Secure Shell) o SCP (Secure Copy) en estos escenarios. Pero si el servidor está en una ubicación remota, estos protocolos se vuelven extremadamente lentos en comparación con la descarga en HTTP.

Entonces, ¿por qué no usar el HTTP para estos propósitos? La solución es bastante simple: sólo usa un servidor como Nginx y configúralo para que sirva los archivos que necesitas. Luego simplemente descarga el archivo usando aria2 o algún otro acelerador de descargas de tu máquina local. Sin embargo, estas situaciones no se dan necesariamente de forma regular, por lo que nuestra solución tendría que ser temporal, algo que pudiéramos eliminar fácilmente después de su uso.

Descargar archivos grandes usando Nginx con Docker
Descargar archivos grandes usando Nginx con Docker

¡Docker al rescate!

Nota al margen: si eres nuevo en el uso de docker, asegúrate de revisar primero nuestra Guía para principiantes de docker.

Primero construiremos una imagen de Nginx (mira esta discusión sobre imágenes y contenedores para más) con nuestro archivo de configuración personalizado y lo ejecutaremos. De esta manera, cuando necesitemos descargar algo, simplemente iniciaremos la imagen y la detendremos una vez que la descarga se haya completado.

Como una imagen docker, este proceso de descarga también se vuelve portátil; puedes usarla en cualquiera de tus servidores sin tocar el sistema existente.