Controlando a banda de download no Apache

Prezados Colegas,

Primeiramente Saudações Pinguianas a todos!
Nesse artigo eu vou explicar com limitar a banda no Apache.

Introdução

O Apache é um servidor de páginas WEB mais famoso da atualidade e muito conhecido no mundo livre. Muitas pessoas o utilizam para criar servidores de hospedagem de sites WEB e vendem largura de banda, espaço em disco e acesso a algum banco de dados.

O que muitos não sabem como fazer é este tipo de controle e como agregar isso ao Apache2 de forma simples e eficiente. O Debian vem nos dar uma mão para resolver este problema e conseguir agregar uma solução simples e prática de utilizar rapidamente um controle de banda para seus domínios virtuais (Virtual Domains).

Então, vou pré-supor que você tenha o apache instalado para implementar essa solução.

Entendendo o módulo mod_cband do Apache2

O módulo mod_cband é um módulo do Apache2 fornecido para resolver o problema de limitar a banda utilizada pelos usuários e virtual hosts. A versão (0.9.7.4-2) do módulo pode definir quotas de banda utilizada tanto para usuários, quanto para os virtual hosts, velocidade máxima de download, requisições por segundo e o número máximo de conexões de IP simultâneas.

Agora, não sei porque cargas d’águas esse pacote não vem mais nos repositórios do Debian. Por isso, vamos fazer o download e instalação, conforme eu vou mostrar nos comandos abaixo:

Baixando:

Instalando:

1
# dpkg -i libapache2-mod-cband_0.9.7.4-2_i386.deb

Uma vez instalado o pacote do módulo, ativá-lo no Debian é muito simples, basta executar:

1
# a2enmod cband

Configurando um domínio virtual simples

Para que o controle de tráfego feito seja aproveitado é necessário que sejam adicionados ao domínio virtual as seguintes diretivas mostradas no exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *>
      ServerName  www.dominio.com.br
      ServerAdmin [email protected]
      DocumentRoot /var/www/dominio
      CBandLimit 1G
      CBandRemoteSpeed 10kb/s 3 5
      CBandExceededSpeed 128 5 15
      CBandPeriod 4W
    <Location /cband-status>
      SetHandler cband-status
    </Location>
    <Location /cband-status-me>
      SetHandler cband-status-me
    </Location>
</VirtualHost>

Podemos ver que as configurações que diferem de configurações normais são:

CBandLimit: Define a Banda limite que pode ser utilizada

CBandRemoteSpeed: Define a velocidade de conexão que pode ser utilizada no máximo, onde 10kb/s é a taxa de tráfego por segundo, o 3 é o número máximo de requisições por segundo e o 5 é o número máximo de conexões vinda de um mesmo cliente.

CBandExceededSpeed: Define o tráfego máximo que pode ser utilizado caso a velocidade de transferência tenha sido excedida.

CBandPeriod: É o tempo que leva para a contagem do uso de banda definido em CBandLimit expirar.

Após estas configurações, definimos duas localizações:

/cband-status: Que vai mostrar a utilização de banda de todos os subdomínios é vai possibilitar realizar um reset nos contadores de banda.

/cband-status-me: Que vai mostrar a utilização de banda do domínio na barra de endereços (no caso um domínio virtual em questão).

Feito estas configurações, basta dar um ‘force-reload’ no Apache para ativar as configurações:

# /etc/init.d/apache2 force-reload

Prontinho! A banda de download está limitada!

Rolar para cima