Limita a velocidade de upload do Proxy Apache por conexão / ip?

2

Eu olhei para mod_bandwidth e mod_cban, mas eles não parecem satisfazer meus requisitos.

Estou executando um servidor proxy com o apache 2.2 (mod_proxy, proxy_http, proxy_connect).

Eu quero limitar a "velocidade de upload do cliente".

Isso é ao mesmo tempo a largura de banda de download do servidor, que não deve ser limitada.

Eu quero por conexão ou melhor ainda por IP.

Para torná-lo compreensível: O caso de uso é que não quero que pessoas más instalem dados incorretos em lugares ruins usando meu servidor proxy para "mascarar" a si próprios. Claro que eu tenho logs e tudo, mas eu quero garantir o problema e torná-lo pouco atraente em primeiro lugar.

Para uma melhor compreensão, aqui está uma imagem da minha configuração:

É claro que a seta vermelha também pode apontar para a seta superior esquerda.

Atualmente, estou pensando em iniciar o apache duas vezes no mesmo servidor em portas diferentes e usar o ProxyRemote para enviar a solicitação ao outro proxy. Então, no segundo proxy, eu posso excluir o localhost do afogamento. No entanto, eu ainda precisaria de uma solução para limitar a largura de banda de entrada, mas não de saída. Eu poderia perceber isso com o IPtables.

Mas honestamente? Deve haver um caminho melhor. Só tem que.

    
por The Shurrican 06.07.2011 / 21:00

2 respostas

1

iptables em combinação com tc deve ser capaz de fazer isso se o OP estiver no Linux. Iptables possui um módulo chamado connbytes que pode corresponder ao número de bytes que passaram pelo fluxo até o momento. Use isso para "marcar" pacotes em fluxos que enviaram muitos bytes. Por exemplo, você pode ter uma regra que marca todos os pacotes em fluxos entre 1 MByte e 10 MBytes com a marca "1" e outra que marca todos os pacotes em fluxos maiores que 10 MBytes com a marca "2".

Em seguida, você configura as classes de modelagem de tráfego como padrão (= = abaixo de 1 Mbyte), para a marca "1" e marca "2".

A vantagem dessa solução é que você não precisa penalizar os usuários, a menos que consumam coletivamente muita largura de banda. A desvantagem é que estas são ferramentas um pouco complexas que levam algumas leituras para envolver sua cabeça.

iptables e tc estão incluídos na maioria das distros. Você também pode querer olhar para tcng, o que torna radicalmente mais simples formular conjuntos de regras tc.

    
por 12.07.2011 / 00:52
0

Sua pergunta parece interessante :). Seu pedido parece realmente possível com o apache + squid + pools de delay do squid + acl externo do squid (para filtrar pedidos baseados em cabeçalhos).

link

link

O tipo de acl externo é a chave que você pode usar para filtrar solicitações com base no cabeçalho (POST) para aplicar a limitação de velocidade.

    
por 18.07.2011 / 22:54