<?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"
	>

<channel>
	<title>Under-Linux.Org &#187; Clustering</title>
	<atom:link href="http://under-linux.org/category/clustering/feed" rel="self" type="application/rss+xml" />
	<link>http://under-linux.org</link>
	<description>O Portal dos Administradores de Sistemas</description>
	<pubDate>Wed, 27 Aug 2008 14:16:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Linux Magazine: Novos artigos de bancos de dados disponíveis para download</title>
		<link>http://under-linux.org/8793-linux-magazine-novos-artigos-de-bancos-de-dados-disponiveis-para-download.html</link>
		<comments>http://under-linux.org/8793-linux-magazine-novos-artigos-de-bancos-de-dados-disponiveis-para-download.html#comments</comments>
		<pubDate>Wed, 20 Aug 2008 14:45:26 +0000</pubDate>
		<dc:creator>phess</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Banco de Dados]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Linux Magazine]]></category>

		<category><![CDATA[Mysql]]></category>

		<category><![CDATA[PostgreSQL]]></category>

		<category><![CDATA[linux magazine]]></category>

		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://under-linux.org/?p=8793</guid>
		<description><![CDATA[A Linux Magazine acaba de liberar o download de sete novos artigos sobre bancos de dados em Linux. Confira:
Item de colecionador: O Linux possui incontáveis servidores de bancos de dados. Mas o que um usuário doméstico iria querer com um servidor? Apresentamos o Tellico, um banco de dados pessoal para gerenciar coleções e afins.
Dados à [...]]]></description>
			<content:encoded><![CDATA[<p>A Linux Magazine acaba de <a href="http://www.linuxmagazine.com.br/noticia/novos_artigos_de_bancos_de_dados_disponiveis_para_download">liberar o download de sete novos artigos sobre bancos de dados em Linux</a>. Confira:</p>
<p><a href="http://www.linuxmagazine.com.br/article/item_de_colecionador">Item de colecionador</a>: O Linux possui incontáveis servidores de bancos de dados. Mas o que um usuário doméstico iria querer com um servidor? Apresentamos o Tellico, um banco de dados pessoal para gerenciar coleções e afins.</p>
<p><a href="http://www.linuxmagazine.com.br/article/dados_a_maeo">Dados à mão</a>: Com o Mudbag você pode construir rapidamente um sistema de banco de dados simples para acessar com o navegador.</p>
<p><a href="http://www.linuxmagazine.com.br/article/para_dar_liga">Para dar liga</a>: De nada adianta ter um banco de dados e um servidor Web se não houver algo para integrá-los. O PHP é a linguagem preferida de muitos webmasters, e atualmente é um dos destaques do código aberto no mundo.</p>
<p><a href="http://www.linuxmagazine.com.br/article/truques_com_dados">Truques com dados</a>: Mostramos como os recursos de <i>stored procedures</i>, <i>triggers</i> e <i>views</i> do MySQL 5 ajudam a melhorar o desenho de programas e aumentar muito o desempenho dos aplicativos.</p>
<p><a href="http://www.linuxmagazine.com.br/article/busca_bonita_e_veloz">Busca bonita e veloz</a>: Indexação de Textos com o Tsearch 2 em um portal jornalístico fictício para explorar os recursos oferecidos por esse módulo do PostgreSQL.</p>
<p><a href="http://www.linuxmagazine.com.br/article/chegando_a_base">Chegando à base</a>: Se você precisa de uma alternativa rápida e fácil ao Microsoft Access, experimente construir seus aplicativos baseados em bancos de dados com o OpenOffice.org.</p>
<p><a href="http://www.linuxmagazine.com.br/article/unidos_venceremos">Unidos venceremos</a>: Uma comparação entre os sistemas de cluster da MySQL AB e da Emic Networks.</p>
<p>Fonte: <a href="http://www.linuxmagazine.com.br/noticia/novos_artigos_de_bancos_de_dados_disponiveis_para_download">Linux Magazine Online</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/8793-linux-magazine-novos-artigos-de-bancos-de-dados-disponiveis-para-download.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Uso de cluster Debian para previsão do tempo</title>
		<link>http://under-linux.org/8286-uso-de-cluster-debian-para-previsao-do-tempo.html</link>
		<comments>http://under-linux.org/8286-uso-de-cluster-debian-para-previsao-do-tempo.html#comments</comments>
		<pubDate>Mon, 17 Mar 2008 16:44:11 +0000</pubDate>
		<dc:creator>ramorim</dc:creator>
		
		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Distribuição]]></category>

		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Open-Source]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[Debian]]></category>

		<category><![CDATA[linux magazine]]></category>

		<category><![CDATA[Linux New Media]]></category>

		<category><![CDATA[PAGASA]]></category>

		<category><![CDATA[SGI]]></category>

		<category><![CDATA[supercomputador]]></category>

		<guid isPermaLink="false">http://under-linux.org/8286-uso-de-cluster-debian-para-previsao-do-tempo.html</guid>
		<description><![CDATA[O serviço metereológico do governo das Filipinas (PAGASA) acaba de substituir um supercomputador da SGI por um cluster de oito PCs rodando Debian. O sistema atenderá as fontes locais e o Sistema Global de Telecomunicações. A implementação dessa nova arquitetura propiciou uma redução mensal nos gastos para um vigésimo do valor original.
De acordo com Alan [...]]]></description>
			<content:encoded><![CDATA[<p>O serviço metereológico do governo das Filipinas (PAGASA) acaba de substituir um supercomputador da SGI por um cluster de oito PCs rodando Debian. O sistema atenderá as fontes locais e o Sistema Global de Telecomunicações. A implementação dessa nova arquitetura propiciou uma redução mensal nos gastos para um vigésimo do valor original.</p>
<p>De acordo com Alan Pineda, chefe do ICT e responsável pela previsão de enchentes, a equipe responsável no PAGASA já havia tentado implementar vários sabores de Linux, incluindo Red Hat, Mandriva e Fedora. Pineda informou que o PAGASA queria um sistema que fosse bastante escalável. Saiba mais no <a href="http://www.linuxmagazine.com.br/noticia/uso_de_cluster_debian_para_previsao_do_tempo">site da Linux Magazine</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/8286-uso-de-cluster-debian-para-previsao-do-tempo.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ruby + Rails + Gem + Mongrel Cluster + Apache( mod_proxy_balancer ) + MySQL on Red Hat EL</title>
		<link>http://under-linux.org/7979-rails-e-mongrel-no-red-hat.html</link>
		<comments>http://under-linux.org/7979-rails-e-mongrel-no-red-hat.html#comments</comments>
		<pubDate>Wed, 28 Nov 2007 16:58:26 +0000</pubDate>
		<dc:creator>marcosmiras</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Mysql]]></category>

		<category><![CDATA[Programação]]></category>

		<category><![CDATA[Segurança]]></category>

		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://under-linux.org/7979-rails-e-mongrel-no-red-hat.html</guid>
		<description><![CDATA[Bom galera, faz umas semanas que estava quebrando a cabeça para fazer funcionar um servidor Rails com o Mongrel Cluster e o Apache. Como muitos desevolvedores de Ruby não utilizam o RHEL e sim o Debian(ou distro baseadas em Debian) resolvi deixar esse post aos caros colegas administradores de rede que acabam pegando essas buchas [...]]]></description>
			<content:encoded><![CDATA[<p>Bom galera, faz umas semanas que estava quebrando a cabeça para fazer funcionar um servidor Rails com o Mongrel Cluster e o Apache. Como muitos desevolvedores de Ruby não utilizam o RHEL e sim o Debian(ou distro baseadas em Debian) resolvi deixar esse post aos caros colegas administradores de rede que acabam pegando essas buchas :S</p>
<p>Lembrando que você deve ter o GCC(tralhas &amp; cia) para compilação e etc&#8230; Quem irá instalar o servidor selecione na instalação a opção de &#8220;Development&#8221;, que ele instala. E também quem escolher a opção &#8220;Everthing&#8221; deve após a instalação desinstalar o Ruby que vem nativo (rpm -e ruby.x.x), já tive problemas com isso.</p>
<p>Então vamos colocar a mão na massa:<br />
Os arquivos eu deixarei num diretório chamado /opt/RoR (ruby on rails)<br />
Instalaremos primeiramente o Ruby</p>
<p><code># cd /opt/RoR<br />
# wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz<br />
# tar zxvf ruby-1.8.6.tar.gz<br />
# cd ruby-1.8.6<br />
# ./configure<br />
# make<br />
# make install</code></p>
<p>Agora o Gems, para quem tem duvidas o Gems é parecido com o apt-get e o yum, ele gerencia os aplicativos para baixar e instalar, com um detalhe com apenas um comando ele faz tudo (download, instala,&#8230;) muito bacana&#8230;</p>
<p><code># cd ..<br />
# wget http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz<br />
# tar zxvf rubygems-0.9.5.tgz<br />
# cd rubygems-0.9.5<br />
# ruby setup.rb</code></p>
<p>É a vez do Rails agora. Perceba a funcionalidade do Gems:</p>
<p><code># gem install rails --include-dependencies</code></p>
<p>Sem um banco de dados não vamos muito longe. Caso você já tenha o DB, não é necessário instalar novamente.</p>
<p><code># gem install mysql</code></p>
<p>Certo, terminamos o estágio que o programador mais gosta, funcionar! rs</p>
<p>Entre no banco de dados e crie o banco:</p>
<p><code># mysql -p<br />
*****<br />
mysql&gt; create database nomedobanco_production;<br />
mysql&gt; create database nomedobanco_development;<br />
mysql&gt; use nomedobanco_production;<br />
mysql&gt; grant all privileges on *.* to admin@'localhost' identified by '123456';<br />
mysql&gt; flush privileges;<br />
mysql&gt; use nomedobanco_development;<br />
mysql&gt; grant all privileges on *.* to admin@'localhost' identified by '123456';<br />
mysql&gt; flush privileges;<br />
mysql&gt; quit</code></p>
<p>Coloque a aplicação em um determinado diretório (utilizarei de exemplo /suaapp)</p>
<p><code># cd /suaapp<br />
# vi conf/database.yml</code></p>
<p>Altere os seguintes campos:<br />
<code>development:<br />
adapter: mysql<br />
database: nomedobanco_developement</code></p>
<p><code>username: admin<br />
password: 123456<br />
host: localhost<br />
socket: /tmp/mysql.sock</code></p>
<p><code>production:<br />
adapter: mysql<br />
database: nomedobanco_production<br />
username: admin<br />
password: 123456<br />
host: localhost<br />
socket: /tmp/mysql.sock</code></p>
<p>Criando as tabelas, lembre-se de estar dentro do diretório da sua app:</p>
<p><code># rake db:migrate</code></p>
<p>Pronto veremos agora se está tudo ok:</p>
<p><code># ruby script/server</code></p>
<p>Acesse sua aplicação:</p>
<p><code>http://ip_do_server:3000</code></p>
<p>Pressione <em>CRTL+C</em> para continuarmos.</p>
<p>Crie um usuário chamado mongrel, necessário para &#8220;rodar&#8221; o cluster.<br />
<code><br />
# useradd mongrel</code></p>
<p>Vamos instalar o Mongrel, o Mongrel é um servidor para aplicações desenvolvidas em Ruby on Rails. O mongrel cluster é para fazermos balanceamento de instâncias.</p>
<p><code># gem install mongrel<br />
# gem install mongrel_cluster</code></p>
<p>Se você &#8220;levantar&#8221; o script/server observe que ele carregará o Mongrel.<br />
<code><br />
# mongrel_rails cluster::configure -e production -p 6000 -a 127.0.0.1 -N 5 -c /suaapp</code></p>
<p>Onde N= número de instancias, e= Se produção ou desenvolvimento, p= Porta de comunicação, c= local onde está sua aplicação.</p>
<p>Crie uma pasta no /etc onde o Mongrel irá ler estas configurações:</p>
<p><code># mkdir /etc/mongrel_cluster<br />
# ln -s /suaapp/conf/mongrel_cluster.yml /etc/mongrel_cluster/suaapp.yml<br />
</code><br />
Agora o Apache, muitos admins não sabem o porque dessa interação, bem podemos dizer que o Apache irá administrar o conteúdo estático(imagens,&#8230;) da aplicação, fará também o gerenciamento do cluster e fará a segurança, se necessário fazer uma conexão segura (SSL) deveremos fazer também com o apache.</p>
<p><code># wget http://apache.rmplc.co.uk/httpd/httpd-2.2.6.tar.gz<br />
# tar xvfz httpd-2.2.3.tar.gz<br />
# cd httpd-2.2.3/<br />
# ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http<br />
# make<br />
# make install</code></p>
<p>Crie um link para os modulos na sua pasta de configurações do apache:</p>
<p><code># ln -s /usr/local/apache2/modules /usr/local/apache2/conf/modules</code></p>
<p>Vamos configurar um virtual host para nossa app:</p>
<p><code># vi /usr/local/apache2/conf/httpd.conf</code></p>
<p>Você deve habilitar os seguintes módulos:</p>
<p><code>LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so</code></p>
<p>Inclua no final do arquivo a seguinte configuração</p>
<p><code>&lt;VirtualHost *&gt;<br />
ServerName redhatonrails<br />
ErrorLog /suaapp/log/errors.log<br />
CustomLog /suaapp/log/apache.log combined</code><br />
<code><br />
&lt;Directory "/suaapp/public/"&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;</code></p>
<p>RewriteEngine On</p>
<p># Check for maintenance file and redirect all requests<br />
#  ( this is for use with Capistrano&#8217;s disable_web task )<br />
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f<br />
RewriteCond %{SCRIPT_FILENAME} !maintenance.html<br />
RewriteRule ^.*$ /system/maintenance.html [L]</p>
<p># Rewrite index to check for static<br />
RewriteRule ^/$ /index.html [QSA]</p>
<p># Rewrite to check for Rails cached page<br />
RewriteRule ^([^.]+)$ $1.html [QSA]</p>
<p># Redirect all non-static requests to cluster<br />
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f<br />
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]</p>
<p># Deflate<br />
AddOutputFilterByType DEFLATE text/html text/plain text/css<br />
# &#8230; text/xml application/xml application/xhtml+xml text/javascript<br />
BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
BrowserMatch ^Mozilla/4.0[678] no-gzip<br />
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</p>
<p>&lt;Proxy *&gt;<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Proxy&gt;</p>
<p>&lt;Proxy balancer://mongrel_cluster&gt;<br />
BalancerMember http://127.0.0.1:6000<br />
BalancerMember http://127.0.0.1:6001<br />
BalancerMember http://127.0.0.1:6002<br />
BalancerMember http://127.0.0.1:6003<br />
BalancerMember http://127.0.0.1:6004<br />
&lt;/Proxy&gt;</p>
<p>&lt;/VirtualHost&gt;<br />
Vamos criar um arquivo de inicialização para o Mongrel Cluster:</p>
<p><code># ln -s /usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/rc.d/init.d/mongrel_cluster<br />
# chmod +x /etc/rc.d/init.d/mongrel_cluster</code></p>
<p>Inicie o Mongrel e o Apache</p>
<p><code># /usr/local/apache2/bin/apachectl start<br />
# /etc/rc.d/init.d/mongrel_cluster start</code></p>
<p>É isso aí, espero ter ajudado!<br />
Abraços,<br />
Marcos Miras<br />
<a href="mailto:marcosmiras@atmsystem.com.br">marcosmiras@atmsystem.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/7979-rails-e-mongrel-no-red-hat.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Squid atuando como proxy reverso</title>
		<link>http://under-linux.org/7964-squid-atuando-como-proxy-reverso.html</link>
		<comments>http://under-linux.org/7964-squid-atuando-como-proxy-reverso.html#comments</comments>
		<pubDate>Wed, 28 Nov 2007 12:18:46 +0000</pubDate>
		<dc:creator>Alexandre Correa</dc:creator>
		
		<category><![CDATA[Aplicativos]]></category>

		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Geral]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[cache]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[proxy]]></category>

		<category><![CDATA[reverso]]></category>

		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://under-linux.org/7964-squid-atuando-como-proxy-reverso.html</guid>
		<description><![CDATA[Introdução
Proxy reverso é um termo utilizado para proxies que fazem o serviço contrário de um proxy normal.
A maioria dos administradores de  redes usam o Squid como proxy de acesso de uma LAN para a internet, podendo controlar acesso, etc e etc.
Neste artigo iremos tratar de um proxy que atua de modo inverso, recebendo requisições [...]]]></description>
			<content:encoded><![CDATA[<h3>Introdução</h3>
<p>Proxy reverso é um termo utilizado para proxies que fazem o serviço contrário de um proxy normal.</p>
<p>A maioria dos administradores de  redes usam o <em>Squid</em> como proxy de acesso de uma LAN para a internet, podendo controlar acesso, etc e etc.</p>
<p>Neste artigo iremos tratar de um proxy que atua de modo inverso, recebendo requisições EXTERNAS e repassando para os servidores INTERNOS, sendo possível fazer balanceamento de carga TRANSPARENTE entre vários servidores WEB.</p>
<p>No caso de balanceamento de carga, o Squid reversamente falando, atua muito bem, se um dos servidores cair, o Squid automaticamente NÃO passa requisições mais à ele, deixando seu sistema redundante.</p>
<p>Interessante e seguro, é que os servidores WEB não ficam diretamente com &#8220;a cara&#8221; na internet, aumentando ainda mais a segurança. <img src='http://under-linux.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Veremos uma configuração básica no seguinte cenário:</p>
<ul>
<li> 1 servidor Squid - 200.200.200.1 e 192.168.0.1 (interface externa e interna);</li>
<li> 2 servidores web (com os mesmos arquivos e configuração, mudando apenas o ip), 192.168.0.2 e 192.168.0.3 (1 ip para cada servidor);</li>
<li> Domínio: dns www.meusite.com.br devidamente configurado para 200.200.200.1.</li>
</ul>
<p>Let´s Rock&#8230;</p>
<h3>Pacotes necessários</h3>
<p>Este artigo pode ser executado em QUALQUER sistema operacional, estou utilizando Red Hat Enterprise 5 como exemplo.</p>
<p>Relação dos pacotes utilizados:</p>
<ul>
<li> httpd-devel-2.2.3-11.el5</li>
<li> httpd-2.2.3-11.el5</li>
<li> squid-2.6.STABLE6-4.el5</li>
<li> php-5.1.6-15.el5</li>
<li> mysql-server-5.0.22-2.1.0.1</li>
</ul>
<p>Os pacotes php e mysql-server são apenas &#8220;ilustrativos&#8221;, não veremos suas configurações, apenas listei para mostrar a funcionalidade dos servidores web.</p>
<h3> Arquivos de configurações</h3>
<p>Os arquivos que vão ser alterados são:</p>
<p>Configuração do apache:</p>
<p><em>/etc/httpd/conf/httpd.conf</em></p>
<p>Configuração do Squid:</p>
<p><em>/etc/squid/squid.conf</em></p>
<p>O Squid vai fazer o cache na pasta /var/spool/squid.</p>
<p>A pasta do Squid recomendo deixar num HD separado, pois o Squid gera muito I/O no HD, podendo prejudicar os outros serviços que dependem do acesso a disco.</p>
<h3>Configurando o Apache</h3>
<p>A configuração dos servidores Apache é simples, basta colocar para listar a porta 80 no ip da interface. Por padrão o apache vem com a linha:</p>
<p><font color="#3366ff"> Listen 80 </font></p>
<p>Trocar a linha padrão do primeiro servidor Apache por esta:</p>
<p><font color="#3366ff"><em> Listen 192.168.0.2:80</em></font></p>
<p>E no segundo servidor Apache por:</p>
<p><font color="#3366ff"><em> Listen 192.168.0.3:80</em></font></p>
<p>Configurar o domínio www.meusite.com.br:</p>
<p><font color="#3366ff"> DocumentRoot /var/www/html<br />
ServerName www.meusite.com.br:80<br />
ServerAdmin hostmaster@meusite.com.br</font></p>
<p><font color="#3366ff">ServerTokens Prod<br />
ServerSignature Off</font></p>
<p><font color="#3366ff">KeepAlive On<br />
MaxKeepAliveRequests 0<br />
KeepAliveTimeout 15</font><br />
Salve o httpd.conf.</p>
<p>Adicione o httpd para iniciar automaticamente:</p>
<p><strong># chkconfig &#8211;add httpd<br />
# chkconfig httpd on</strong></p>
<p>Agora iniciar o serviço:</p>
<p><strong># service httpd start</strong></p>
<p>Em cada servidor crie um arquivo index.html e dentro identifique cada servidor (apenas para detectar em qual servidor estamos acessando). Por exemplo:</p>
<p><em> index.html </em></p>
<p><font color="#3366ff"> &lt;html&gt;<br />
&lt;head&gt;&lt;title&gt;Servidor 1&lt;/title&gt;&lt;/head&gt;<br />
&lt;body&gt;<br />
Acesso via servidor 1<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font><br />
E no servidor 2:</p>
<p><em> index.html </em></p>
<p><font color="#3366ff"> &lt;html&gt;<br />
&lt;head&gt;&lt;title&gt;Servidor 2&lt;/title&gt;&lt;/head&gt;<br />
&lt;body&gt;<br />
Acesso via servidor 2<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font><br />
OK. Acesse os endereços de cada servidor  para confirmar o funcionamento do Apache.</p>
<p>Nossos 2 servidores webs estão prontos, vamos ao servidor Squid! <img src='http://under-linux.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Configurando o Squid</h3>
<p>O <em>Squid</em> vai fazer o papel de &#8220;servidor web&#8221;, recebendo as requisições da internet na porta 80 e repassando-as para os servidores web REAIS. Caso o Squid tenha a página solicitada em CACHE, os servidores WEB REAIS não recebem a requisição, simplesmente o SQUID que responde. <img src='http://under-linux.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>O <em>/etc/squid/squid.conf</em> fica assim:<br />
<font color="#004080">#Lista na porta 80 e o site padrão sera www.meusite.com.br caso a requisição não tenha um header Host especificado.</font><br />
http_port 200.200.200.1:80 vhost defaultsite=www.meusite.com.br</p>
<p><font color="#004080">#Lista porta 3401 para requisições SNMP, caso não queira obter informações do squid via SNMP</font><font color="#004080"><br />
#coloque 0 no lugar da porta, você pode usar cacti, mrtg, rrdtool para gerar estatísticas do</font><font color="#004080"><br />
#Squid, são gerados gráficos bem interessantes.</font><br />
snmp_port 3401<font color="#004080">#Não usaremos este protocolo de comunicação entre proxies, pois temos apenas 1 proxy.</font><br />
icp_port 0</p>
<p><font color="#004080">#Configurando a pasta de cache, 20GB, primeiro nível com 32 pastas e cada pasta terá 256 sub-pastas. </font><br />
cache_dir aufs /var/spool/squid 20000 32 256</p>
<p><font color="#004080">#Mantendo objetos recentes e pequenos na memoria</font><br />
memory_replacement_policy heap GDSF</p>
<p><font color="#004080">#Mantendo objetos recentes no disco (independente do tamanho)</font><br />
cache_replacement_policy heap LFUDA</p>
<p><font color="#004080">#Ativando pools de memoria, evitando o Squid ficar realocando memoria toda hora que precisar, manterá pools de 32MB</font><br />
memory_pools on<br />
memory_pools_limit 32 MB</p>
<p><font color="#004080">#Não fazer cache de paginas dinâmicas</font><br />
hierarchy_stoplist cgi-bin ?<br />
acl QUERY urlpath_regex cgi-bin \?<br />
cache deny QUERY</p>
<p><font color="#004080">#Fazer cache dos headers &#8216;vary&#8217;</font><br />
cache_vary on<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache</p>
<p><font color="#004080">#memoria alocada para objetos em TRANSITO </font><br />
cache_mem 128 MB<br />
<font color="#004080"><br />
#Manutenção do cache</font><br />
cache_swap_low 90<br />
cache_swap_high 95</p>
<p><font color="#004080">#Tamanho máximo de objetos que serão gravados em disco/memoria, este valor varia de acordo com cada tipo</font><font color="#004080"><br />
#de conteúdo servido pelos servidores WWW, se você servir arquivos muito grandes</font><font color="#004080"><br />
#aumente de acordo com a necessidade.</font><br />
maximum_object_size 4 MB<font color="#004080">#Tamanho minimo de objetos gravados, aqui ele vai gravar TUDO</font><br />
minimum_object_size 0 KB</p>
<p><font color="#004080">#Tamanho máximo de objetos mantidos na memoria</font><br />
maximum_object_size_in_memory 64 KB</p>
<p><font color="#004080">#Manter 1024 registros de DNS na memoria</font><br />
fqdncache_size 1024</p>
<p><font color="#004080">#Arquivos de logs</font><br />
access_log /var/log/squid/access.log<br />
cache_log /var/log/squid/cache.log<br />
cache_store_log none<br />
emulate_httpd_log on<br />
log_ip_on_direct on</p>
<p><font color="#004080">#Configurações extras</font><br />
mime_table /etc/squid/mime.conf<br />
log_mime_hdrs off<br />
log_fqdn off<br />
ftp_user anonymous@aonze.com.br<br />
ftp_passive on<br />
ftp_sanitycheck on<br />
ftp_telnet_protocol on<br />
check_hostnames on<br />
allow_underscore on<br />
dns_timeout 1 minutes<br />
request_header_max_size 16 KB</p>
<p><font color="#004080">#Estas &#8216;refresh_pattern&#8217; fazem com que o squid mantenha o máximo possível um objeto em cache aumentando<br />
# HIT E BYTE HIT</font><br />
refresh_pattern -i \.jpg$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.gif$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.png$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.jpeg$      0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.bmp$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.tif$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.tiff$      0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.swf$       0     50%    21600 reload-into-ims<br />
refresh_pattern -i \.html$      0     20%    1440<br />
refresh_pattern -i \.htm$       0     20%    1440<br />
refresh_pattern -i \.shtml$     0     20%    1440<br />
refresh_pattern -i \.shtm$      0     20%    1440<br />
refresh_pattern -i \.mov$     2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.avi$     2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.mpg$     2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.mpeg$    2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.qtm$     2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.flv$     2880   80%   21600 reload-into-ims<br />
refresh_pattern -i \.wav$     1440   100%   4320 reload-into-ims<br />
refresh_pattern -i \.au$      1440   100%   4320 reload-into-ims<br />
refresh_pattern -i \.mid$     1440   100%   4320 reload-into-ims<br />
refresh_pattern -i \.mp3$     2880   100%   21600 reload-into-ims<br />
refresh_pattern -i \.zip$     7200 50% 21600 reload-into-ims<br />
refresh_pattern -i \.gz$      0 50% 10080 reload-into-ims<br />
refresh_pattern -i \.arj$     0 50% 4320  reload-into-ims<br />
refresh_pattern -i \.lha$     0 50% 4320  reload-into-ims<br />
refresh_pattern -i \.lzh$     0 50% 4320  reload-into-ims<br />
refresh_pattern -i \.rar$     7200 50% 21600 reload-into-ims<br />
refresh_pattern -i \.tgz$     0 50% 21600 reload-into-ims<br />
refresh_pattern -i \.tar$     0 50% 21600 reload-into-ims<br />
refresh_pattern -i \.Z$       0 50% 4320  reload-into-ims<br />
refresh_pattern -i \.sit$     0 50% 4320  reload-into-ims<br />
refresh_pattern -i \.pdf$     7200   50%   10080 reload-into-ims</p>
<p><font color="#004080">#O que não bater nas regras acima, recebem valores padrões, NÃO aconselho alterar estas</font><font color="#004080"><br />
#3 abaixo, e estas devem ser as ULTIMAS regras..</font><br />
refresh_pattern ^ftp:           1440    20%     10080<br />
refresh_pattern ^gopher:        1440    0%      1440<br />
refresh_pattern .               0       20%     4320</p>
<p><font color="#004080">#Objetos em transito que forem interrompidos, terminar o download se a porcentagem do download for maior que 85%</font><br />
quick_abort_min 50 KB<br />
quick_abort_max 50 KB<br />
quick_abort_pct 85</p>
<p><font color="#004080">#caches de respostas</font><br />
negative_ttl 3 minutes<br />
positive_dns_ttl 5 hours<br />
negative_dns_ttl 2 minute</p>
<p><font color="#004080">#Servidor de DNS, recomendo rodar um servidor dns cache-only na MESMA maquina do Squid</font><font color="#004080"><br />
#e também colocar forwarders para outros servidores de dns próximos fazendo com que o</font><font color="#004080"><br />
#tempo de resposta dns fique bem baixo..</font><br />
dns_nameservers 127.0.0.1</p>
<p><font color="#004080">#timeouts</font><br />
refresh_stale_hit 30 seconds<br />
connect_timeout 1 minute<br />
peer_connect_timeout 30 seconds<br />
read_timeout 15 minutes<br />
request_timeout 1 minutes<br />
persistent_request_timeout 1 minute<br />
client_lifetime 1 day<br />
pconn_timeout 30 seconds<br />
ident_timeout 10 seconds<br />
half_closed_clients off<br />
forward_timeout 3 minutes<font color="#004080">#tempo de espera antes de matar o processo</font><br />
shutdown_lifetime 30 seconds</p>
<p><font color="#004080">#Regras para acesso, vamos proteger nosso Squid de acessos indevidos, fazendo com que não temos um PROXY OPEN RELAY.</font></p>
<p><font color="#004080">#ip localhost</font><br />
acl localhost src 127.0.0.1</p>
<p><font color="#004080">#ips dos servidores</font><br />
acl hosted dst 200.200.200.1 192.168.0.1 192.168.0.2 192.168.0.3<font color="#004080"><br />
#protocolo cache_object, utilizado pelo cache manager </font><br />
acl manager proto cache_object<br />
acl all src 0.0.0.0/0.0.0.0<br />
<font color="#004080">#Permitir protocolo para localhost</font><br />
http_access allow manager localhost<br />
<font color="#004080">#ninguém mais alem do próprio servidor acessa o cache_object</font><br />
http_access deny manager<br />
<font color="#004080">#permite o localhost acesso ao proxy</font><br />
http_access allow localhost<br />
<font color="#004080">#permite acesso aos ips dos servidores</font><br />
http_access allow hosted<br />
<font color="#004080">#ninguém mais acessa nada que não bater nas regras acima.. deve ser SEMPRE a ultima regra</font><br />
http_access deny all</p>
<p><font color="#004080">#CASO for gerar estatísticas snmp, adicionar estas regras</font></p>
<p>acl snmppublic  snmp_community  public<br />
snmp_access allow snmppublic localhost<br />
snmp_access deny all<br />
snmp_incoming_address 0.0.0.0<br />
snmp_outgoing_address 255.255.255.255</p>
<p><font color="#004080">#### fim do snmp</font></p>
<p><font color="#004080">#respostas http, permitidas todas para todos</font><br />
http_reply_access allow all<br />
<font color="#004080">#tamanho máximo do cabeçalho de resposta</font><br />
reply_header_max_size 10 KB<font color="#004080"><br />
#informações</font><br />
cache_mgr hostmaster@meusite.com.br<br />
cache_effective_user squid<br />
cache_effective_user squid<font color="#004080">#esconde versão do squid</font><br />
httpd_suppress_version_string on<br />
<font color="#004080">#seta o host para www.meusite.com.br caso contrario o squid anexa o hostname da maquina, podendo causar problemas na respostas.</font><br />
visible_hostname www.meusite.com.br</p>
<p><font color="#004080">#manter 10 arquivos de logs</font><br />
logfile_rotate 10</p>
<p><font color="#004080">#usar buffer do sistema, o squid não controla o buffer tcp neste caso..</font><br />
tcp_recv_bufsize 0 bytes</p>
<p><font color="#004080">#mantem ip de origem no header</font><br />
forwarded_for on</p>
<p><font color="#004080">#mantem uma lista de clientes acessando o cache</font><br />
client_db on<br />
buffered_logs off</p>
<p><font color="#004080">#Aplica o header If-modified-since em todos os objetos</font><br />
reload_into_ims on<font color="#004080">#permite conexões persistentes</font><br />
client_persistent_connections on<br />
server_persistent_connections on</p>
<p><font color="#004080">#não permite manter a conexão ativa quando esta for um erro, (404, 500, etc etc).</font><br />
persistent_connection_after_error off<font color="#004080">#detectar conexões permanentes com erro</font><br />
detect_broken_pconn on<br />
pipeline_prefetch on<br />
ie_refresh on<br />
relaxed_header_parser on<font color="#004080"><br />
#fazer a entrega aos servidores WEB, aqui que acontece a &#8216;magica&#8217;</font><br />
cache_peer 192.168.0.2 parent 80 0 no-query originserver round-robin<br />
cache_peer 192.168.0.3 parent 80 0 no-query originserver round-robin</p>
<p><font color="#004080">#EOF</font></p>
<p>Salve o squid.conf.</p>
<p>Execute o comando:</p>
<p><strong># squid -k parse</strong></p>
<p>para validar o squid.conf.</p>
<p>Agora é necessário que o Squid crie a estrutura do cache, execute o comando:</p>
<p><strong># squid -z</strong></p>
<p>O Squid vai criar a estrutura das pastas no /var/spool/squid.</p>
<p>Adicione o Squid na inicialização do sistema:</p>
<p><strong># chkconfig &#8211;add squid<br />
# chkconfig squid on</strong></p>
<p>Agora inicie o Squid:</p>
<p><strong># service squid start</strong></p>
<p>Pronto! O Squid vai receber as requisições e repassar (aleatoriamente) para os servidores web.</p>
<p>Uma dica interessante, caso o servidor web 1 seja melhor do que o servidor web 2, você pode definir um PESO na opção cache_dir para que o melhor servidor atenda mais requisições e o servidor 2 atenda um número MENOR. Vamos supor que o www1 suporte 4 vezes mais do que o www2, então ficaria assim:</p>
<p>cache_peer 192.168.0.2 parent 80 0 no-query originserver round-robin weight=4<br />
cache_peer 192.168.0.3 parent 80 0 no-query originserver round-robin weight=1<br />
A cada 4 requisições para o www1, ele manda a 1 para o www2. <img src='http://under-linux.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Basicamente este é o processo, vale lembrar que as configurações possuem bastante opções, principalmente a parte do cache_peer, recomendo a leitura do wiki do Squid no endereço:</p>
<ul>
<li> <a href="http://wiki.squid-cache.org/">http://wiki.squid-cache.org</a></li>
</ul>
<p>Abraço a todos!</p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/7964-squid-atuando-como-proxy-reverso.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lista dos 500 Supercomputadores Mais Rápidos</title>
		<link>http://under-linux.org/7917-lista-dos-500-supercomputadores-mais-rapidos.html</link>
		<comments>http://under-linux.org/7917-lista-dos-500-supercomputadores-mais-rapidos.html#comments</comments>
		<pubDate>Wed, 14 Nov 2007 04:25:26 +0000</pubDate>
		<dc:creator>Marcelo M. Thomaz</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[supercomputadores]]></category>

		<category><![CDATA[top500]]></category>

		<guid isPermaLink="false">http://under-linux.org/7917-lista-dos-500-supercomputadores-mais-rapidos.html</guid>
		<description><![CDATA[Saiu esses dias a lista dos 500 supercomputadores mais rápidos do mundo. A IBM está no topo com o BlueGene, seguida da Silicon Graphics e HP.
A lista ainda fornece descrições de cada supercomputador: o sistema da IBM desponta com 360 teraflops, composto por processadores PowerPC 440 700 MHz de 2.8 GFlops e dotado de 73728 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://under-linux.org/wp-content/uploads/2007/11/imagem.thumbnail.PNG" alt="top500" align="left" />Saiu esses dias a lista dos 500 supercomputadores mais rápidos do mundo. A IBM está no topo com o BlueGene, seguida da Silicon Graphics e HP.</p>
<p>A lista ainda fornece descrições de cada supercomputador: o sistema da IBM desponta com 360 teraflops, composto por processadores PowerPC 440 700 MHz de 2.8 GFlops e dotado de 73728 GB de memória.</p>
<p>Parece até meu desktop!</p>
<p align="right">Confiram a lista no <a href="http://www.top500.org/list/2007/11/100" target="_blank">TOP500 Supercomputer Sites</a></p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/7917-lista-dos-500-supercomputadores-mais-rapidos.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lançado Linux-HA 2.0.8</title>
		<link>http://under-linux.org/6729-lancado-linux-ha-208.html</link>
		<comments>http://under-linux.org/6729-lancado-linux-ha-208.html#comments</comments>
		<pubDate>Tue, 16 Jan 2007 17:16:52 +0000</pubDate>
		<dc:creator>miguel</dc:creator>
		
		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[ha]]></category>

		<category><![CDATA[heartbeat]]></category>

		<guid isPermaLink="false">http://under-linux.org/6729-lancado-linux-ha-208.html</guid>
		<description><![CDATA[Talvez mais conhecido como heartbeat, o projeto Linux-HA lançou uma nova versão estável. Destaque para o novo recurso de separação de locais e vários bugs corrigidos.
Para mais detalhes:
http://lists.linux-ha.org/pipermail/linux-ha-announce/2007q1/000018.html
]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="High Performace Computing" id="image6538" title="High Performace Computing" src="http://under-linux.org/wp-content/uploads/2006/12/nsd-collage.miniatura.jpg" />Talvez mais conhecido como <em>heartbeat</em>, o projeto Linux-HA lançou uma nova versão estável. Destaque para o novo recurso de separação de locais e vários bugs corrigidos.</p>
<p>Para mais detalhes:</p>
<p><a href="http://lists.linux-ha.org/pipermail/linux-ha-announce/2007q1/000018.html">http://lists.linux-ha.org/pipermail/linux-ha-announce/2007q1/000018.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/6729-lancado-linux-ha-208.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Iniciando o ParallelKnoppix, um Live CD para clusters</title>
		<link>http://under-linux.org/6438-iniciando-o-parallelknoppix-um-live-cd-para-clusters.html</link>
		<comments>http://under-linux.org/6438-iniciando-o-parallelknoppix-um-live-cd-para-clusters.html#comments</comments>
		<pubDate>Fri, 17 Nov 2006 13:47:25 +0000</pubDate>
		<dc:creator>White_Tiger</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Distribuição]]></category>

		<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://under-linux.org/6438-iniciando-o-parallelknoppix-um-live-cd-para-clusters.html</guid>
		<description><![CDATA[ParallelKnoppix é uma versão modificada do konppix desenhado para criar cluster JPC. Você pode iniciar o PK com múltiplos módulos e customiza-lo adicionando ou removendo aplicações.
Este tutorial mostra como rodar e configurar o PK para estes serviços.
O tutorial pode ser acessado em:
http://www.linux.com/article.pl?sid=06/11/09/1931219
]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://parallelknoppix.cebacad.net/"><img align="left" id="image6401" src="http://under-linux.org/wp-content/uploads/2006/11/livro.jpg" />ParallelKnoppix</a> é uma versão modificada do konppix desenhado para criar cluster JPC. Você pode iniciar o PK com múltiplos módulos e customiza-lo adicionando ou removendo aplicações.</p>
<p>Este tutorial mostra como rodar e configurar o PK para estes serviços.</p>
<p>O tutorial pode ser acessado em:<br />
<a href="http://www.linux.com/article.pl?sid=06/11/09/1931219">http://www.linux.com/article.pl?sid=06/11/09/1931219</a></p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/6438-iniciando-o-parallelknoppix-um-live-cd-para-clusters.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cluster de Firewall com carp + pfsync</title>
		<link>http://under-linux.org/6386-cluster-de-firewall-com-carp-pfsync.html</link>
		<comments>http://under-linux.org/6386-cluster-de-firewall-com-carp-pfsync.html#comments</comments>
		<pubDate>Fri, 10 Nov 2006 12:33:44 +0000</pubDate>
		<dc:creator>White_Tiger</dc:creator>
		
		<category><![CDATA[Artigos]]></category>

		<category><![CDATA[Clustering]]></category>

		<category><![CDATA[Geral]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://under-linux.org/6386-cluster-de-firewall-com-carp-pfsync.html</guid>
		<description><![CDATA[Para quem não conhece o assunto, com carp + pfsync é possível criar um cluster de firewalls de uma forma que elimine um único ponto de falha, e ainda por cima é totalmente transparente, uma máquina pode explodir que a outra irá assumir instantaneamente e você não vai perder se quer um misero pacote de [...]]]></description>
			<content:encoded><![CDATA[<p><img width="81" height="89" align="right" title="seguranca.jpg" id="image6133" alt="seguranca.jpg" src="http://underlinux.com.br/wp-content/uploads/2006/10/seguranca.jpg" />Para quem não conhece o assunto, com carp + pfsync é possível criar um cluster de firewalls de uma forma que elimine um único ponto de falha, e ainda por cima é totalmente transparente, uma máquina pode explodir que a outra irá assumir instantaneamente e você não vai perder se quer um misero pacote de seu download. CARP = Common Address Resolution Protocol, o carp é o principal responsável pelo compartilhamento de IP entre o cluster. É com ele que faremos a redundância das máquinas, se uma cair a outra irá assumir o ip setado no carp. Além do carp iremos utilizar o PFSYNC para fazer a sincronia de estados das conexões entre as máquinas, é por causa dele que se uma máquina cair e o tráfego for redirecionado para a outra a conexão não será cortada.</p>
<p>Veja mais em nosso <a href="http://under-linux.org/wiki/index.php/Tutoriais/OpenBSD/firewall-carp-pfsync">wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://under-linux.org/6386-cluster-de-firewall-com-carp-pfsync.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
