tag:www.iv4.pt,2008:/apache Apache - IV4 Blog 2009-10-07T11:05:48Z Enki IV4 geral@iv4.pt tag:www.iv4.pt,2008:Post/5 2009-10-07T10:05:00Z 2009-10-07T11:05:48Z Aumentar a velocidade das app Apache/Passenger Rails <p>Instalei o Yslow e claro, não saiu logo a nota máxima, mas com as seguintes afinações no apache, quase que foi suficiente para lá chegar.</p> <p>Com a instalação e execução de dois módulos, consegue-se aumentar a velocidade de resposta das vossas aplicações rails sobre apache/passenger.</p> <p>O primeiro módulo permite que os recursos que são servidos pelo web server tenham expire headers, permitindo ao browser saber se precisa de obter esse recurso outra vez ou não. Aumentado assim a velocidade de carregamento da página.</p> <p>O outro é a compressão dos ficheiros enviados pelo servidor, reduzindo a largura de banda utilizada e os tempos de transferência dos ficheiros para o browser.</p> <p>Para tal basta executar os comandos:</p><table class="CodeRay"><tr> <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt> </tt>2<tt> </tt></pre></td> <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }">a2enmod expires<tt> </tt>a2enmod deflate<tt> </tt></pre></td> </tr></table> <p>Que activam os módulos de expiração dos headers e o de compressão dos ficheiros.</p> <p>Depois é ir à directoria /etc/apache2/sites-available e adicionar nos ficheiros as seguintes entradas:</p><table class="CodeRay"><tr> <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt> </tt>2<tt> </tt></pre></td> <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"> # gzip html, css and js<tt> </tt> AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript<tt> </tt></pre></td> </tr></table> <table class="CodeRay"><tr> <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt> </tt>2<tt> </tt>3<tt> </tt>4<tt> </tt>5<tt> </tt></pre></td> <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"> ExpiresActive On<tt> </tt> # far future expires headers<tt> </tt> &lt;FilesMatch &quot;\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$&quot;&gt;<tt> </tt> ExpiresDefault &quot;access plus 1 year&quot;<tt> </tt> &lt;/FilesMatch&gt;<tt> </tt></pre></td> </tr></table>