Aug 09 2007
Otimização do Apache
No dia de ontem tivemos problemas com um cliente que teve o “asar” de escrever uma palavra errada em seu blog, e despertou a ira de um script kiddy que resolveu afirmar sua virilidade e confirmar o tamanho do pinto atacando o site do cliente, ocasionando um ataque de negação de serviço.
Os danos foram mínimos, uma pequena indisponibilidade no fim da tarde, mas que me deixou com a pulga atrás da orelha, pois temos poder de processamento de sobra, largura de banda de sobra e segurança totalmente adequada (exceto por um cliente que uma vez informou em um site de programas piratas a sua senha de FTP, nunca tivemos um caso de “defacement” na PortoFácil.
Passei a madrugada pesquisando e acabei por implementar algumas pequenas modificações na configuração do servidor, que o tornam mais resistente a estes ataques esporádicos. São elas:
- implementei cache das consultas ao MySQL: isso fará com que as páginas que são muito acessadas — já que a maioria usa WordPress — estejam disponíveis imediatamente, sem requerer nenhum processamento extra;
- desabilitei as conexões persistentes do Apache: estas conexões persistentes (o Apache mantém a conexão aberta por alguns segundos esperando que o mesmo cliente venha a fazer novas requisições) implicam muitos processos desperdiçados, esperando Godot.
- aumentei o número de processos máximos do Apache: quando esse limite é atingido, os clientes são “barrados” com uma mensagem de conexão recusada; aumentei esse valor para evitar que usuários legítimos ficassem impedidos de acessar principalmente o site sob ataque.
Qualquer coisa, por favor contatem-me!
Textos relacionados a este: