Instalar Thundercache 3.1 en Debian/Ubuntu

Imagen de RazaMetaL

Tema: 

ThunderCache es una solución webcaché para quien necesite ahorrar ancho de banda. Existen varios forks del Thunder v 3.1 -que fué la última versión de código abierto- haarpcache y raptorcache son las gratuitas mas conocidas.

La versión que instalaremos en este pequeño manual es una adaptación del código original realizada por Fernando P. Maniglia misma que hace poco uso de recursos y funciona (a la fecha 23/04/2015) de manera excelente haciendo caché de sitios con mucha demanda entre los usuarios como: youtube, vimeo, windowsupdate, actualizaciones de java, actualizaciones de adobe, actualizaciones de firefox y una larga lista sitios de video con contenido adulto :)

Requisitos:
- Obiamente una computadora con sistema operativo GNU/Linux instalado: Debian 7 ó Ubuntu (12 ó 14)
- Una interfaz de red. Se requieren de dos interfaces cuando el equipo hace de gateway de una red.
- Conexión a internet para descargar las dependencias y los paquetes a instalar

Instalar dependencias:
aptitude update
aptitude install build-essential g++-4.4 squid3 mysql-server

Descargar e instalar Thunder 3.1:
cd /usr/src
wget http://www.razametal.org/conf/thunder31/thunder.tar.gz
tar zvxf thunder.tar.gz
cd /usr/src/thunder
./configure CXX=g++-4.4
make clean
make
make install

Configurar la base de datos (MySQL):
cd /usr/src/thunder
mysql -u root < thunder.sql
echo "GRANT ALL PRIVILEGES ON thunder.* TO 'thunder'@'localhost' IDENTIFIED BY 'thunder' WITH GRANT OPTION;" | mysql -u root
mysqladmin flush-privileges

Configurar Thunder 3.1:
cd /etc/thunder
mv thunder.conf thunder.orig
wget http://www.razametal.org/conf/thunder31/thunder.conf
update-rc.d thunder defaults 98

Configurar Squid 3:
cd /etc/squid3
mv squid.conf squid.conf.orig
wget http://www.razametal.org/conf/thunder31/squid3-thunder31.conf -O squid.conf

Si queremos ver una página con el conteo de archivos descargados, archivos con HITS, espacio de disco duro utilizado, etc:

aptitude install apache2 php5-mysql libapache2-mod-auth-mysql
cd /var/www/ (en Ubuntu /var/www/html)
ln -s /etc/thunder/thunder.php thunder.php

Instalar la limpieza automática del contenido del caché antiguo y sin HITS:

wget http://www.razametal.org/conf/thunder31/clean/thunderClear -O /usr/local/bin/thunderClear
chmod a+x /usr/local/bin/thunderClear

Creamos una tarea programada que ejecute el limpiador de archivos los dias a las 00h01, eliminara archivos antiguos y sin HITS cuando el disco duro alcance el valor porcentual declarado en /etc/thunder/thunder.conf en la opcion CACHE_LIMIT

echo "01 0 * * * root /usr/local/bin/thunderClear" >> /etc/crontab
/etc/init.d/cron restart

Instalar plugins adicionales:
cd /etc/thunder
wget http://www.razametal.org/conf/thunder31/plugins/plugins-64.tar.gz
tar zvxf plugins-64.tar.gz
mv thunder.lst thunder.lst.orig
wget http://www.razametal.org/conf/thunder31/plugins/thunder.lst

Iniciar los servicios:
/etc/init.d/squid3 stop
/etc/init.d/thunder stop
/etc/init.d/apache2 stop
/etc/init.d/squid3 start
/etc/init.d/thunder start
/etc/init.d/apache2 start

Para revisar el estado del caché basta con abrir: http://direccion.ip.servidor/thunder.php

Les adjunto esta es la captura de la página.
Thundercache 3.1

Comentarios

Configurar Mikrotik router para direccionar trafico a Thunder

Imagen de RazaMetaL

Comparto la configuración que logra que el tráfico http sear direccionado hacia el servidor de caché. Para esta configuración el servidor puede tener solo una interfaz de red, deberán modificar la interfaz y dirección ip que corresponda a vuestra topología, este este ejemplo se asume que ether2 es la interfaz conectada hacia la red interna y que 172.50.50.2 es la ip del servidor corriendo thunder 3.1:

/ip firewall nat

add action=dst-nat chain=dstnat comment=”Redirect to thunder” disabled=no dst-port=80 in-interface=ether2 protocol=tcp to-addresses=172.50.50.2 to-ports=3128 \

/ip firewall mangle

add action=mark-connection chain=postrouting comment="== thunder ==" \
content="X-Cache: HIT FROM Alliance" new-connection-mark=\
thunder-connection src-address=172.50.50.2
add action=mark-packet chain=postrouting connection-mark=thunder-connection \
new-packet-mark=thunder-packs passthrough=no
add action=mark-connection chain=prerouting comment="==SQUID - TOS 12==" \
dscp=12 new-connection-mark=squid-connection src-address=172.50.50.2
add action=mark-packet chain=prerouting connection-mark=squid-connection \
new-packet-mark=squid-packs

Muchas gracias a Cristhian Moya por hacerme llegar esta configuración.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Servidor con dos tarejetas de red como puerta de enlace

Imagen de RazaMetaL

Para que esta configuración funcione en un equipo que tiene la función de proxy y además es la puerta de enlace de la red se requiere de una interfaz de red adicional.

Una vez instalada la interfaz hay que configurar iptables para que reenvíe el tráfico desde el puerto 80 hacia el puerto 3128 de squid, asumiendo que la intefaz de red conectada al switch de la red interna:

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s 0/0 --dport 80 -j REDIRECT --to-port 3128

El código anterior podemos agregarlo en /etc/init.d/rc.local para que sea ejecutado cada vez que el servidor inicia.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Hacer caché de paquetes deb

Imagen de RazaMetaL

Para lograr que el servidor haga caché de los paquetes .deb descargados por nuestros equipos de la red interna que utilizen apg-get :

Instalar en el servidor apt-cacher-ng :

aptitude install apt-cacher-ng

Agregar en la configuración de squid 3 /etc/squid/squid.conf en la sección acl:
# Configuracion para hacer apt-cacher-ng transparente:
cache_peer localhost parent 3142 7 proxy-only no-query no-netdb-exchange connect-timeout=15
acl aptget browser -i apt-get apt-http apt-cacher apt-proxy
acl deburl urlpath_regex /(Packages|Sources|Release|Translations-.*)\(.(gpg|gz|bz2))?$ /pool/.*/\.deb$ /(Sources|Packages)\.diff/ /dists/[^/]*/[^/]*/(binary-.*|source)/.
cache_peer_access localhost allow aptget
cache_peer_access localhost allow deburl
cache_peer_access localhost deny all
# Fin de configuracion para apt-cacher-ng

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Hola,

Imagen de RazaMetaL

Hola,

En efecto, thundercache 3.1 es algo viejo, pero funciona. Este fork lo mantiene [1] Fernando Maniglia.

[1] https://www.facebook.com/fernando.p.maniglia

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});