Testando o desempenho do servidor com ApacheBench – Benchmarking

Quando se produz uma aplicação/site e se iniciam os testes locais, normalmente tudo corre bem, pois somente uma pessoa está utilizando, a conexão local é rápida, você segue o roteiro que foi concebido como o roteiro lógico da sua aplicação e tudo dá certo.

Você então decide publicar e desencadeia uma série de reclamações com erros nunca vistos antes.

Tirando o fator “usuário” que é o mais recorrente para se quebrar uma aplicação, você talvez não contasse com o fator “servidor” onde sua hospedagem não consegue aguentar a quantidade de acessos e requisições e começa a quebrar sua página com diversos erros como timeout da aplicação, negação de serviço e até os erros 404 e 500.

Como esse problema é relacionado ao hardware e otimização do sistema, nem sempre é possível garantir os 100% de uptime do servidor, mas em muitos casos é possível detectar possíveis falhas antes de laçar o sistema.

Existem diversas soluções disponíveis no mercado, de acordo com o tipo de servidor usado. Neste post estou tratando somente do Apache.

Acesse o terminal via SSH e utilize o seguinte comando

ab -n 1000 -c 10 http://www.seusite.com.br/index.php

Nessa linha temos:

  • ab: nome do comando
  • n: número de requisições
  • c: requisições concorrentes

Para este exemplo pedimos para que sejam efetuadas 1000 requisições ao servidor sendo 10 ao mesmo tempo. Este é um exemplo mínimo, acesse o manual do apache para conhecer as outras opções de verificação.

O relatório exibido deve ser avaliado para que você saiba se a sua aplicação vai aguentar a quantidade de acessos. É com base nesse resultado que é possível até evitar um ataque DDos

Para mais informações acesse http://www.vivaolinux.com.br/artigo/Testes-de-stress-no-Apache-com-o-comando-ab

Erro 403 Forbidden usando MAMP para Mac

No desenvolvimento de páginas para web é muito comum utilizar parâmetros de reescrita de url utilizando o mod_rewrite do Apache. Alguns desses parâmetros podem interferir no funcionamento do MAMP, assim como XAMPP e outros packs LAMP.

Um desses erros possíveis é o erro 403, que corresponde de modo geral a uma tentativa de acesso proibida (mais informações sobre o erro 403 em http://en.wikipedia.org/wiki/HTTP_403). Este erro nega o acesso ao phpmyadmin e às demais páginas gerenciadas pelo MAMP.

A forma que encontrei para corrigir este erro foi bem simples. Pare todos os serviços. Não basta só fechar o aplicativo, tem que clicar em “Stop Servers” e aguardar o encerramento. Em seguida, por meio do aplicativo TextWrangler, que permite editar arquivos do sistema, acessei Applications/MAMP/conf/apache, abri o arquivo httpd.conf e a partir da linha 371 você tem o seguinte trecho de código:

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#

Options Indexes FollowSymLinks
AllowOverride All

Simplesmente altere a diretiva AllowOverride All para AllowOverride None, salve e inicie os serviços novamente. Isto já será suficiente para resolver esse pequeno problema de erro 403.