Monthly Archives: abril 2010

INSTALANDO THUNDER CACHE 3 EN UBUNTU

Actualmente Thundercache 3 no es funcional, pueden usar este nuevo Free Software – HaarpCache

THUNDER CACHE es un sistema que trabaja en conjunto con Squid, reescribiendo las direcciones URL, haciendo cache de los archivos de video como de youtube, y actualizaciones de antivirus y windows update, esto, para mejorar el rendimiento de un sistema de red local. Es un módulo ideal para los proveedores de servicios de Internet, ya que además de dar un rendimiento excepcional, proporciona un notable ahorro de ancho de banda.
Para su instalación, simplemente debemos de seguir estos simples pasos:
Nos logeamos como root y ejecutamos en consola:

apt-get update
apt-get upgrade
apt-get install squid apache2 libapache2-mod-php5 php5 php-db php5-gd php5-sqlite sqlite3 libsqlite3-dev libstdc++6 unzip bzip2

[Nota: Vean que estamos instalando el proxy SQUID, si quieren usar 2 tarjetas de red, deben de configurar el proxy en modo transparente, vean como se configura aqui, o pueden buscar “como configurar proxy transparente” en google].

cd /root
wget "http://www.razametal.org/conf/thundercache/thunder3-32bits.tar.bz2" -O thunder3-32bits.tar.bz2
mkdir thunder3-32bits
tar xjvf thunder3-32bits.tar.bz2 -C thunder3-32bits
cd thunder3-32bits
mkdir /usr/local/sbin
cp -R /root/thunder3-32bits/sbin/* /usr/local/sbin
chmod a+x /usr/local/sbin/thunder
mkdir /var/log/thunder
mkdir /var/tmp/thunder
mkdir /var/run/thunder
chmod a+rwx /var/log/thunder
chmod a+rwx /var/tmp/thunder
chmod a+rwx /var/run/thunder
cp -R /root/thunder3-32bits/etc/init.d/* /etc/init.d
chmod a+x /etc/init.d/thunder
cp -R /root/thunder3-32bits/etc/thunder /etc/thunder
touch /etc/thunder/whitelist
touch /etc/thunder/blacklist
mkdir /thunder
chmod a+rwx /thunder
chown -R www-data:www-data /thunder/
chmod -R 777 /thunder/
umask 000 /thunder/

ln -s /etc/thunder/thunder.php /var/www/thunder3.php

Colocamos a thundercache 3 para iniciar automáticamente al iniciar linux

update-rc.d thunder defaults
Luego integramos el thundercache al squid.
sudo gedit /etc/squid/squid.conf
o
sudo vim /etc/squid/squid.conf
y al final del archivo agregamos el módulo de thundercache.

	#===================================================================#
	#Redirecionamento Thunder 3.x - REGEx
	#===================================================================#
	acl thunder_lst url_regex -i "/etc/thunder/thunder.lst"
	cache deny thunder_lst
	cache_peer IPTHUNDER parent 8080 0 proxy-only no-digest
	dead_peer_timeout 2 seconds
	cache_peer_access IPTHUNDER allow thunder_lst
	cache_peer_access IPTHUNDER deny all

Cambiando “ipthunder” por la ip del proxy.
y comentamos la linea:

#hierarchy_stoplist cgi-bin ?

Para concluir, hacemos que nuestros log’s roten cada día.
creamos el archivo, “sudo gedit /etc/logrotate.d/thundercache3”, y pegamos lo siguiente:

/var/log/thunder/*.log {
daily
compress
rotate 5
missingok
notifempty
postrotate
/etc/init.d/thunder restart > /dev/null
endscript
}

(Observación de RazaMetal).

Finalmente reiniciamos el servidor.

Podemos ver una interfaz web, de la cantidad de archivos cacheados hasta el momento, y saber cuantos han sido despachados como caché (hits).
http://localhost/thunder3.php
thunder
Podemos observar lo que ocurre con el thundercache en:

tail -f /var/log/thunder/access.log

Por cualquier razón, podemos reiniciar el servicio thundercache:

/etc/init.d/thunder restart

y también el servicio web:

/etc/init.d/apache2 restart

Datos:
Cuando hay hits de thundercache, este nos manda una cabecera http, con la cadena: “X-Cache: Hit from Thunder”, esto puede servir para difereciar de los paquetes que vienen desde internet y de los que vienen desde el thundercache:
Ejem:

iptables -A OUTPUT -t mangle -m string --string "X-Cache: HIT from Thunder" --algo kmp -j MARK --set-mark 666

Para borrar los archivos cacheados que no hayan hecho HITS, deberemos de correr el siguiente script:

#!/bin/sh
data=`date +"%Y-%m-%d" -d "17 week ago"`

dirs=`find /thunder/ -name domain.db`

for d in $dirs
do
        lista="init"

        dir=`dirname $d`
        echo "entered in $dir."

        while [ -n "$lista" ]
        do
                lista=`sqlite3 $dir/domain.db "select file from thunder where last_request < \"$data\" and requested = 0 limit 100;"`
                for i in $lista
                do
                        sqlite3 $dir/domain.db "delete from thunder where file=\"$i\""
                        if rm "$dir/$i" > /dev/null
                        then
                                echo "removed $i..."
                        fi
                done
        done
done

Con lo anterior, eliminamos todos los que no fueron pedidos o no hicieron “HITS”, por más de 17 semanas desde su creación.
Para su ejecución, lo guardamos en cualquier lugar, por ejemplo en “/thunder”:

cd /thunder

luego creamos el archivo clear_thunder.sh, para copiar en el el script anterior.

sudo gedit clear_thunder.sh

Guardamos y salimos.
le damos permisos de ejecución:

sudo chmod +x clear_thunder.sh

ahora, si queremos ejecutarlo :

cd /thunder
./clear_thunder.sh

Y veremos en consola, como se empiezan a eliminar los archivos que no hicieron HITS (en17 semanas atrás).
Recuerden que pueden cambiar el número 17 del script, y poner las semanas que deseen.

Actualización – 07/04/2012

Les comparto este nuevo cache “haarpcache”, que es evidentemente superior al thundercache 3.0 es recomendable ya que tiene mejor soporte en los plugins, espero les guste (es gratis :)).
https://perufw.wordpress.com/2012/04/07/instalando-haarpcache-v1-0/