<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Semilla de Software Libre (S.L.) &#187; optimización</title>
	<atom:link href="http://www.semillasl.com/tag/optimizacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.semillasl.com</link>
	<description>Otra empresa de software libre</description>
	<lastBuildDate>Mon, 20 Jul 2009 09:04:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Proxy inverso con squid</title>
		<link>http://www.semillasl.com/2008/06/proxy-inverso-con-squid/</link>
		<comments>http://www.semillasl.com/2008/06/proxy-inverso-con-squid/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 14:49:35 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Administración de sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://www.semillasl.com/?p=3</guid>
		<description><![CDATA[Cómo configurar squid para hacer de proxy inverso.]]></description>
			<content:encoded><![CDATA[<p>Hemos estado haciendo pruebas sobre como afectaría al rendimiento de nuestros servidores el web el poner delante de ellos una serie de cachés inversos de forma que e tráfico vaya contra estos cachés, vean si esa petición es una petición dinámica, si lo es remitirla a los servidores web y si no es que lo resuelva el sólo.</p>
<p>Hemos quedado gratamente satisfechos con las pruebas y muy posiblemente lo empecemos a implantar en algunos servicios que empiezan a tener mucho tráfico. Esto es más o menos lo que hemos hecho.</p>
<p><span id="more-3"></span></p>
<p>Nuestro esquema actual sería algo parecido a esto:</p>
<p><a href="http://www.semillasl.com/wp-content/uploads/2008/06/netcache.jpg"><img class="aligncenter size-full wp-image-4" title="netcache" src="http://www.semillasl.com/wp-content/uploads/2008/06/netcache.jpg" alt="Esquema del servicio, nos riáis ya tendréis crios..." width="420" height="300" /></a></p>
<p>Bueno vamos al lío de cómo se haría esto, lo primero sería saber que servicios vamos a tener que tocar para poner esto en marcha, en nuestro caso serían:</p>
<ul>
<li>Apache, no mucho para decirle que ahora también escuche por real.example.com</li>
<li>Bind9, para decirle que www.example.com es la máquina de cache</li>
<li>Squid, el que va a hacer el trabajo sucio</li>
</ul>
<p>En nuestro esquema cada servicio corre en una máquina distinta, así que empezaremos por apache y bind, que es donde menos hay que tocar&#8230;</p>
<p>En apache simplemente añadimos esta línea por cada dominio que queramos que sea resuelto por el cache:</p>
<blockquote><p>/etc/apache/sites-enabled/example.com</p>
<p>[...]</p>
<p>ServerAlias real.example.com</p>
<p>[..]</p></blockquote>
<p>Esto únicamente nos sirve para cuando queramos acceder al servidor sin pasar por la cache.</p>
<p>En la parte de bind, también es bastante sencillo, en el archivo de definición de la zona cambiamos la entrada del www</p>
<blockquote><p>/etc/bind/db.example.com</p>
<p>[...]</p>
<p>www  IN  CNAME  cache</p>
<p>[...]</p></blockquote>
<p>Ahora llega la parte importante instalar el squid y modificar la configuración para que haga de cache inverso.</p>
<p>Lo primero sería instalar squid con su orden favorita, apt-get install squid, urpmi squid, &#8220;instalame el squid becario&#8221;. En nuestro caso la configuración está hecha sobre una debian 4.0, pero no debería haber mucha diferencia entre nuestros unixes. Vamos a configurar squid</p>
<blockquote><p>/etc/squid/squid.conf</p>
<p>http_port 80 vhost # Si vamos a escuchar en el puerto 80 haciendo la vhost (proxy inverso, esto sería todo <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>hierarchy_stoplist cgi-bin ?</p>
<p>acl QUERY urlpath_regex cgi-bin \?<br />
cache deny QUERY</p>
<p>cache_mem 600 MB # tenemos 750MB y esta máquina sólo va a hacer esto&#8230;</p>
<p>maximum_object_size 30 MB # nos interesa cachear también archivos mas o menos grandes</p>
<p>maximum_object_size_in_memory 128 KB<br />
access_log /var/log/squid/access.log squid</p>
<p>hosts_file /etc/hosts # esto es importante, por que aqui es donde resolvemos a la máquina que realmente tiene el apache</p>
<p>refresh_pattern .        0    20%    4320</p>
<p>collapsed_forwarding on<br />
acl all src 0.0.0.0/0.0.0.0<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl to_localhost dst 127.0.0.0/8</p>
<p>acl Safe_ports port 80        # http</p>
<p>acl purge method PURGE<br />
acl CONNECT method CONNECT<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access allow purge localhost<br />
http_access deny purge<br />
http_access deny !Safe_ports<br />
http_access deny to_localhost<br />
acl dominios dstdomain &#8220;/etc/squid/dominios&#8221; all # esto es importante en este fichero le decimos a squid los dominios que vamos a cachear<br />
http_access allow dominios<br />
always_direct allow dominios<br />
http_access allow localhost<br />
http_access deny all<br />
http_reply_access allow all</p>
<p>icp_access allow all</p>
<p>cache_effective_group proxy<br />
visible_hostname cache-001.example.com # podemos tener muchos <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>coredump_dir /var/spool/squid</p></blockquote>
<p>Tachan! ya casi lo tenemos, ahora hemos dejado dos ficheros más que debemos tocar</p>
<blockquote><p>/etc/squid/dominios</p>
<p>www.example.com</p>
<p>example.com</p>
<p>coreapp.example.com</p></blockquote>
<blockquote><p>/etc/hosts</p>
<p>[...]</p>
<p>192.168.0.2 www.example.com example.com</p>
<p>192.168.0.3 copreapp.example.com</p>
<p>[...]</p></blockquote>
<p>y ya releemos las configuraciones de todos los servicios y a ver como el dns va llevando poco a poco el tráfico al caché.</p>
<p>Es interesante que se instalen siempre algunas estadísticas&#8230; pero eso ya será otro artículo rápido como este.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semillasl.com/2008/06/proxy-inverso-con-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
