Apache
O Apache dispensa comentários, é o servidor web mais utilizado na internet. Em agosto/2009, segundo dados divulgados pelo
Netcraft, ele correspondia a 46.30% do mercado, enquanto que o IIS da Microsoft, o segundo mais usado, possuía 21.94%, menos da metade do market share.
Apache oferece uma série de facilidades para o webmaster, que vão desde a possibilidade de prover páginas dinâmicas, como é o caso do PHP, até a criação de regras de rewrite, redirecionamento, otimização de cache, compressão de dados, manipulação de headers, execução de CGI etc. O VOL por exemplo utiliza alguns módulos para criação de facilidades, como o rewrite, deflate, expires, proxy, php5 e headers.
O problema é que tamanha facilidade resulta em tamanho exagerado de memória usada por cada processo filho do Apache. Tais recursos do Apache são necessários somente no tratamento de páginas dinâmicas e, mesmo numa página dinâmica, a maioria dos itens são estáticos.
Tomemos como exemplo a página home do VOL, ao acessá-la o cliente (browser) faz o download do index.php e em seguida é informado para baixar os demais elementos que compõem a mesma:
- index.php
- funcoes.js
- linux025.css
- linux-map.png
- box_bottom.gif
- destaque_topback.gif
- destaque_topright.gif
- destaque_bottomleft.gif
- linux-logo-002.jpg
- linux-slogan.gif
- linux-rss.jpg
- linux-twitter.png
- banner-projetobrasil9.gif
- banner-certificacaolinux.jpg
- banner-icewarp2.gif
- banner-redbug15.gif
- beFree.png
- Linux_key.jpg
- 1251601821.anipg8.gif
- fabio_vol.jpg
- conceito.jpg
- UbuntuLogo1Small.jpg
- desconhecido.jpg
- Foto_Fred_2-60x60.jpg
- curriculo.jpg
- IMG_8992.JPG
- botao_mais_artigos.jpg
Temos um total de 27 elementos, sendo 1 dinâmico e 26 estáticos. Se os recursos que fazem o Apache ficar pesado são utilizados somente 1 vez a cada 27 interações (no caso da home), será que não há uma forma de se otimizar isto?
Lighttpd
"Lighttpd é um servidor web projetado para otimizar ambientes de alta performance.
A utilização de memória é baixa se comparada a outros servidores web, possui um bom gerenciamento de carga da UCP (CPU) e opções avançadas como CGI, FastCGI, SCGI, SSL, reescrita de URL, entre outras.
O Lighttpd concorre de igual para igual com servidores consagrados, como Apache, nos quesitos velocidade, uso do processador e memória. Em alguns casos mostra-se até superior. Porém,
possui bem menos módulos que o Apache. Sua configuração é extremamente simples e fortemente baseada em expressões regulares ao estilo Perl.
Devido ao péssimo suporte a FastCGI do Apache, o Lighttpd tornou-se muito popular na comunidade Ruby on Rails, visto que possui uma ótima implementação do protocolo.
O Lighttpd utiliza licença BSD."
Retirado de:
Lighttpd - pt.wikipedia.org
Se digitarmos "Apache vs Lighttpd" no
Google teremos acesso a diversos benchmarks comparando tais servidores web. Em TODOS eles o Lighttpd se mostrou mais eficiente que o Apache quando o assunto é conteúdo estático, chegando a ser até 28% mais rápido.
Para maiores detalhes, veja:
Benchmark: Apache2 vs. Lighttpd (Static HTML Files) | HowtoForge - Linux Howtos and Tutorials
Conclusão: se o Lighttpd é mais rápido e consome menos recursos que o Apache, o ideal seria usar o Apache para servir o conteúdo dinâmico (seu carro-chefe) e o Lighttpd para servir conteúdo estático. Nas próximas páginas veremos como podemos fazer isso.