O site oficial é: http://bwmod.sourceforge.net/
Esta dica é útil quando se tem uma ADSL em casa ou um link pequeno em alguma empresa quando se tem arquivos para download em um servidor WEB apache. Assim você consegue limitar o uso de banda para download diretamente no apache.
Antes de iniciar a instalação no opensuse, é preciso instalar o pacote apache2-devel.
Se o zypper estiver configurado para obter os repositórios externos é só fazer isso:
zypper install apache2-devel
Na sequência pode-se iniciar a compilação do mod-bw.
wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
tar xvzf mod_bw-0.7.tgz
cd mod_bw
Edite o arquivo mod_bw.c e localize a seção abaixo:
/* Compatibility for ARP < 1 */
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
E deixe a seção acima conforme está abaixo:
/* Compatibility for ARP < 1 */
/*
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
*/
Isso porque se deixar como o default, o apache não irá inicializar, e dará um erro como o seguinte:
httpd2-prefork: Syntax error on line 116 of /etc/apache2/httpd.conf: Syntax error on line 33 of /etc/apache2/sysconfig.d/loadmodule.conf: Cannot load /usr/lib/apache2/mod_bw.so into server: /usr/lib/apache2/mod_bw.so: undefined symbol: apr_atomic_cas
Após a alteração, faça a compilação do módulo:
apxs2 -i -a -c mod_bw.c
Para configurar o módulo, edite o arquivo de configuração do seu server apache, no meu caso /etc/apache2/default-server.conf porque não utilizao mais de um domínio. E adicione o conteúdo abaixo no arquivo.
BandWidthModule On
ForceBandWidthModule On
BandWidth 192.168.0.0/24 0
BandWidth all 60000
Explicando as linhas
1a. Habilita o controle de banda
2a. Garante que cada requisição http será "controlada"
3a. Diz que a rede interna (192.168.0.0/24) não será limitada
4a. Diz que todo o resto será limitado em 60K/s
É isso ai! só fazer o teste agora, faça o teste antes de colocar o módulo em ação e depois ative o mesmo e veja a diferença na taxa de transferência.
Fabio