Otro título sugerido: Taringa es un monstruo propulsado a pendejos.
Prefacio:
Nadie me quiere. Me echaron de un shared hosting que no voy a nombrar por que mi WordPress consumía mucho CPU entonces me fuí a otro shared hosting de mas o menos similares características en donde me desactivaron tres veces en el transcurso de un mes mi WordPress (este, el que estás leyendo, si) por que consumía demasiado CPU…
Entonces me fuí a otro shared hosting pero bajo mi control, en donde tenía shell en el server y acceso a los logs en tiempo real. Ahí pude por fin ver que el problema eran bots que me estaban pegandon en un archivo específico del theme que uso, que tuvo una vulnerabilidad conocida y que me pegaban tan insistentemente que alcanzó a voltear también este otro tercer server en donde lo alojaba.
Ahora ya lo arreglé y lo corro en mi propio server, con juegos de azar y mujerzuelas. En el medio aprendí mucho sobre WordPress y pude optimizarlo un poco. De ahí tengo material para varios posts mas pero hoy tengo ganas de escribir uno cortito por que me da paja:
Hotlinking y de como taringa te puede hacer mierda cuando alojás tus propias imágenes.
Hot-linking, leeching, direct linking, es la trampita mediante la cual algunos sitios web se ahorran una tonelada de ancho de banda mostrando imágenes que vienen desde otros sitios. Así como a los gigantes no se les mueve un pelo, a vos que sos un pobre gil como yo puede que te interese evitarlo.
Cuando alguien te hace hotlinking desde su página, el archivo que alojás en tu servidor recibe un hit. Tu webserver lo muestra, te consume tu ancho de banda y el que cobra Adsense por mostrarlo es el otro. Vos no viste un peso, si te excediste en el ancho de banda contratado te lo cobran y probablemente si el que te hizo el hot-linking es algún peso pesado, puede que te consuma además mucho tiempo de CPU y RAM mientras Apache hace spawn de la cantidad de threads y workers necesarios para poder mostrar todo a la vez, lo que se traduce en pérdida de rendimiento.
Culpa de Taringa, si. A las pruebas me remito después de parsear un poquito el log, por ejemplo:
# grep taringa /var/log/apache2/malditonerd_access.log |cut -d '"' -f 4 |sort |uniq -c |sort -nr |less 3708 http://www.taringa.net/posts/hazlo-tu-mismo/11450066/El-explorer-exe-no-arranca-automaticamente-en-Windows-7.html 2306 http://www.taringa.net/posts/info/14164459/THC-Hydra-Fuerza-bruta-para-principiantes.html 1663 http://www.taringa.net/posts/imagenes/17308158/Frases-ateas-celebres-imperdible.html 1631 http://www.taringa.net/posts/apuntes-y-monografias/16003187/Libros-de-filosofia-online-megapost.html 1228 http://www.taringa.net/posts/noticias/17392843/Sorteo-del-Mundial-2014-Fraude.html 1183 http://www.malditonerd.com/%C2%BFdonde-estan-los-servidores-de-taringa/ 963 http://www.taringa.net/posts/noticias/17381765/Evidencia-que-HAARP-manipula-el-clima.html 820 http://www.taringa.net/posts/ciencia-educacion/17539432/La-religion-podria-desaparecer-para-el-2041.html 634 http://www.taringa.net/posts/paranormal/17572027/Que-es-el-Majestic-12.html 615 http://www.taringa.net/posts/info/10259409/Como-debes-abrir-y-cerrar-la-tapa-de-tu-laptop.html 476 http://www.taringa.net/posts/info/16807752/Chile-el-pais-que-mas-territorio-perdio-en-america-del-sur.html 429 http://m.taringa.net/posts/imagenes/17308158/Frases-ateas-celebres-imperdible.html 414 http://www.taringa.net/posts/offtopic/17500984/El-Peligro-de-la-Religion-en-el-Mundo-documentales.html 403 http://m.taringa.net/posts/hazlo-tu-mismo/11450066/El-explorer-exe-no-arranca-automaticamente-en-Windows-7.html 401 http://www.taringa.net/posts/info/17544309/Disney-adoctrina-a-los-ninos-para-adoptar-el-espionaje.html
Ahí se ve bien clarito que determinado post en taringa tuvo 3708 hits recientemente. Ese post es uno de cientos que hace hotlinking de las imágenes que alojo. Tenìa que hacer algo al respecto.
Mod_rewrite de Apache (Lo vas a encontrar instalado y habilitado en prácticamente todos los servidores web que uses) te permite redireccionar peticiones http, hacer que alguien que venía a ver la tal cosa termine viendo la tal otra a los fines que nos importan y vienen al caso y si bien podría haber mandado los hits entrantes a la recalcada concha de su madre, preferí aprovecharlos para hacerme propaganda.
Así fué como Googleé imágenes en busca de «goatse» y después de haber elegido una que me pareció simpática, la edité con photoshop hasta lograr que pese solamente escasos 1K para que reciba todos los hits consumiendo la menor cantidad de ancho de banda posible y le agregué la URL del blog. Es la imágen que ves mas arriba y es la imagen que le sirvo a Taringa cada vez que alguien me hace hot-linking, por ejemplo:
Como lo hice:
Simple, aprovechando las capacidades de mod_rewrite, sin agregarle plugins al WordPress, ni marcas de agua, ni pendejadas; Marche derecho un goatse para todo taringa poniendo en mi .htaccess estas tres líneas:
RewriteEngine on RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?taringa.net [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ cryingfool.jpg [L]
Donde cryingfool.jpg es el nombre del archivo que alojo acá: http://malditonerd.com/cryingfool.jpg
También podría haber marchado goatse para todo el mundo a menos que viniera desde images.google.com por ejemplo:
RewriteEngine on #RewriteCond %{HTTP_REFERER} !^$ #RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ cryingfool.jpg [L]
Y de hecho así lo tuve durante mucho tiempo. Lo sabrás si me leías desde algún feed reader en aquella época y podés dejar tus puteadas a continuación utilizando el formulario que te proveo a tal efecto.
¿Por qué no lo ponés atrás de una CDN? Cloudflare es gratis 😀
La versión corta: Por que soy pobre. Mi blog tiene un número de IP dinámico. Cloudflare quiere mis NS records o un A, no soporta cnames creo recordar, me corta las pelotas. También estuve haciendo algunos pinitos con otra CDN gratuita que si soporta cnames y ya ni me acuerdo ni como se llama ni por que no me servía. Tengo a medio escribir un post sobre eso contando mis penurias, seguramente lo saque por alt-tab.
¡Saludos!
Yo soy igual de pobre y uso el convenientemente nombrado (?) NameCheap para el DNS. Su servicio gratuito te deja poner records A/AAAA, NS, MX, TXT y SRV (¿qué más necesitás?) con un TTL de 60 segundos.
Ups. Entendí mal el problema. Pensé que estabas usando no-ip o similares y el blog está en un CNAME al dominio de no-ip.
Así que no, no entendí el problema 😀 ¿Necesitás darle directamente una IP a Cloudflare? ¿O qué onda?
El A record que hace funcionar el blog es dinámico, lo actualizo con un script que se fija si cambió el IP del ADSL desde donde te lo estoy tirando por la cabeza. Todo ese setup de pobre le agrega una capa de complejidad que lo hace incompatible, no encontré como hacer para meterle una CDN delante y seguir corriéndolo desde esta conexión pedorra.
¡Saludos!