Como limitar a velocidade de conexão

4

Eu estou no CentOS 6.4 e estou usando o Plesk v11.5.30, embora isso não precise necessariamente ser feito através do plesk.

Estou tentando limitar a velocidade de conexão a um website específico. No entanto, as únicas opções que o Plesk me dá são "Uso máximo da largura de banda" e "limite de conexões".

O uso máximo de largura de banda é a largura de banda total usada por um domínio, enquanto as conexões são o número de conexões (obviamente). O que eu quero fazer é limitar a velocidade para 200kb / s, independentemente de quantas pessoas estão acessando o domínio. Mesmo que apenas uma pessoa esteja acessando, eu não quero que eles consigam usar toda a largura de banda, eu quero que eles sejam limitados a 200kb / s

Existe uma maneira de limitar todas as conexões individuais a apenas 200kb / s para que ninguém possa usar mais de 200kb / s, mas, claro, se o tráfego for alto, elas podem usar menos de 200kb / s?

Para evitar que isso seja específico do plesk, isso é o que está no meu conf e estou feliz de modificá-lo manualmente se houver algum outro parâmetro que eu possa usar:

<IfModule mod_bw.c>
    BandwidthModule On
    ForceBandWidthModule On
    Bandwidth all "0"
    MaxConnection all "0"
    BandWidthError 510
</IfModule>
    
por John Mellor 07.12.2013 / 12:12

2 respostas

2

Eu descobri isso usando LargeFileLimit:

<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "52428800"
MaxConnection all "400"
LargeFileLimit * 1024 204800
BandWidthError 510
</IfModule>

Isto significa que o domínio está limitado a 50mb de largura de banda (52428800), que só pode ter 400 conexões de uma só vez e que qualquer arquivo acima de 1mb será limitado a 200kb / s (204800).

Para quem estiver lendo isso mais tarde, você também pode colocar uma extensão em vez de * para limitar apenas zips, rars, avis ou qualquer outra coisa.

    
por 08.12.2013 / 14:13
4

Eu nunca usei este módulo, mas a documentação parece bastante direta.

As diretivas são válidas dentro de um bloco <VirtualHost> e só se aplicarão a esse host virtual em caso afirmativo. Também parece que eles não herdam de partes superiores da configuração, então você deve colocar todas as diretivas relevantes no host virtual.

Sua configuração atual define o limite de largura de banda como "0", o que significa que não há limite. Você quer 200KB (eu presumo que você quis dizer kilobytes e não kilobits).

Coloque isso no host virtual que você deseja limitar:

BandwidthModule On
ForceBandWidthModule On
Bandwidth all 204800

O valor padrão MinBandwidth é de 256 bytes / s, então você pode manipular 800 usuários simultâneos antes que qualquer um deles comece a receber mensagens de erro. Se você acha que 256 bytes / s é um pouco baixo, você também pode adicionar MinBandwidth all 1024 , o que significa que, quando você tem mais de 200 solicitações simultâneas, o 201 receberá uma mensagem de erro em vez da página solicitada e todas as 200 antes que será garantido pelo menos 1KB / s.

Eu normalmente não me preocupo com esses <IfModule> blocos porque tudo o que eles fazem é esconder seus erros e fazer você pensar que o mod_bw está funcionando quando ainda não foi carregado.

    
por 07.12.2013 / 18:54