Cómo bloquear hotlink en Nginx

Cuando se trabaja con un ancho de banda limitado, no podemos darnos el lujo de malgastarlo. Sin embargo, hay personas que toman las imágenes o cualquier archivo de los blogs sin saberlo y las ponen en otros sitios utilizando la url del sitio original…eso es el famoso Hotlink. Desde luego, un gran problema si no se tiene ancho de banda ilimitado.

Actualmente, podemos encontrar algunos servicios que nos ayudan con ello, como CloudFlare, sin embargo, si no se quiere depender de un tercero, siempre podemos hacerlo manualmente…..y Nginx no se queda atrás.

Se trata de un par de condiciones muy sencillas.
[mensaje]Las siguientes condiciones se agregan en el archivo de configuración del sitio, el cual se encuentra en /etc/nginx/sites-enabled/.[/mensaje]
[codigo]//extensiones a proteger…
location ~ \.(jpg|png|gif|css|js)$ {
//sitios a los que permitiremos hotlink
valid_referers none blocked google.com *.facebook.com;
//que hacer con los sitios que no tienen permiso
if ($invalid_referer) {
return 403;
}
}[/codigo]

Y por ejemplo, en lugar de bloquear archivos, queremos bloquear un directorio entero…
[codigo]location /imagenes/ {
valid_referers none blocked google.com *.facebook.com;
if ($invalid_referer) {
return 403;
}
}[/codigo]

¿sencillo, no?