Nosso departamento é responsável por manter a identidade visual dos sites do Governo do Estado e ainda fazemos os sites dos orgãos que não possuem um.
No trabalho sempre tivemos um constante problema para hospedar nossos sites: hardware!. Contamos hoje com dois incríveis servidores IBM Pentium4 3Ghz com 2gb de memória e HDs scsi, um para hospedar mais de 40 sites e o outro onde fica postgres com os bancos de dados desses sites.
Ultimamente nosso problema tem crescido bastante, pois, a demanda por sites aumentou e ao mesmo tempo o número de visitas veio aumentando e, como não conseguimos de forma alguma (até agora) investimento em equipamento novo estavamos chegando em uma situação crítica, nosso servidor começava a sentar morrer com 200 conexões simultaneas!
Lembrei-me de um post do boo-box onde vi um servidor web chamado nginx (lê-se engineX) e decidi pesquisar mais e fazer testes em casa onde rodando um servidor e servindo uma página php com um usleep de meio segundo consegui mais de 2000 conexões simultaneas! uau!..

Na segunda feira seguinte, sem pensar muito, fui para o nosso servidor de produção e apliquei a seguinte política de funcionamento:
- nginx recebe todas as conexões pela porta 80
- nginx faz proxy para o apache (que roda em outra porta) se a solicitação for para uma página php
- nginx resolve sozinho usando php-cgi caso a requisição seja para:
- uma fotografia
- um arquivo
- uma requisição para o webservice
- um download do diário oficial
- um banner do Governo
- a barra padrão do Estado
- ou um arquivo na nossa lib
Como resultado da experiência, nossos sites continuam morrendo, porém, aguentando 700 conexões simultaneas e esse valor só é alcançado quando tem muita pesquisa no banco de dados (Dias que sai algo sobre algum concurso público ou muita demissão no Diário Oficial) logo, fica claro, que o problema não é mais do webserver e sim do nosso servidor de Banco. Bom, o nosso webserver atualmente mal chega a 5% de uso, mesmo com as 700 conexões. Só espero conseguir uma maquina nova e mais eficiente para os nossos Bancos de Dados logo!.
Update:
Fomos atendidos, estamos com um Xeon Quad Core com 4Gb de memória para o Banco de dados, e, associado com uma otimização do cache do webservice alcançamos mais de 1000 conexões simultâneas sem nenhuma degradação na performance. Detalhe que o webserver ainda é um P4 3ghz com 1gb de memória em que a utilização de processamento não passa de 5%.
Nginx é realmente muito bom…
A kinghost (http://www.kinghost.com.br) é a única empresa de hospedagem brasileira que disponibiliza nginx para hospedagem.
Vou efetuar os teste do vórtice lá! =)
Abraços!
Fico muito feliz em ver um post nosso ajudando a melhorar a vida de outros desenvolvedores pelo Brasil.
Usar software livre traz muitos benefícios, viva a colaboração
http://portofacil.net/apache-turbinado-com-nginx/
Este post do Janio é muito bom para dar uma explanada dos ótimos efeitos do nginx ;D
Vou testar, com certeza, no meu servidor cloud da Locaweb \o/