Cargar imágenes de sitio remoto a través de proxy inverso con nginx

Independiente del proyecto, CMS o framework sobre el que estés trabajando, contar con una copia local de desarrollo es fundamental.

Aunque replicar configuraciones y bases de datos es algo relativamente sencillo, para proyectos de mediana o gran envergadura se hace especialmente complejo contar con todas las imágenes y archivos subidos por usuarios, por lo que es necesario recurrir a otras alternativas para lograr una réplica útil.

Por supuesto, una alternativa es simplemente realizar una copia mediante rsync u otro mecanismo, pero la librería de imágenes de un sitio grande puede llegar a pesar varias decenas de gigas; por eso la opción de acceder a estos archivos por un proxy resulta muy conveniente y práctica.

Ejemplos de configuración para WordPress

En primer lugar tienes que verificar que nginx tiene el soporte para el módulo de proxy, lo que puedes chequear ejecutando nginx -V desde la consola. Si estás usando la versión que viene en los repositorios de Ubuntu, deberías tenerlo.

Ahora lo más sencillo, para el caso de un sitio único (sin multisite).

https://gist.github.com/felipelavinz/9776262

Y algo más complejo, para multisitio con subdominios:

https://gist.github.com/felipelavinz/9776360

Otro escenario de uso muy útil es para réplicas de sitios que se utilizan como QA.

Vale la pena indicar que lo mismo se puede conseguir con otros servidores web; por ejemplo con Apache. Lighttpd también tiene un módulo de proxy, por lo que también se debería poder.