É possível avaliar o limite com base nos cabeçalhos do host? ou seja, não apenas no endereço IP

É possível avaliar o limite com base nos cabeçalhos do host? ou seja, não apenas no endereço IP

Eu tenho um endpoint de serviço da web que estou construindo, onde as pessoas postarão um arquivo xml, e ele realmente será atingido por mais de 1 mil solicitações por segundo.

Agora eles estão enviando esses arquivos xml via postagem http, mas a maioria deles terá taxa limitada.

O problema é que a limitação da taxa será feita pela aplicação web procurando o source_id no xml, e se for superior a x solicitações por minuto, não será processado posteriormente.

Eu queria saber se eu poderia fazer a verificação do limite de taxa no início do processamento de alguma forma e, assim, salvar o arquivo de 50K que lançaria o pipeline para meus servidores da web e consumiria recursos.

Um balanceador de carga poderia fazer uma chamada para verificar o uso da taxa de alguma forma?

Se isso for possível, talvez eu possa colocar o source_id em um cabeçalho de host para que mesmo o arquivo XML não precise ser analisado e carregado na memória.

É possível apenas observar os cabeçalhos do host e não carregar todo o arquivo xml de 50K na memória?

Eu realmente aprecio seus insights, pois isso exige mais conhecimento de toda a pilha tcp/ip, etc.

Responder1

Existem dois tipos básicos de possibilidades:

1) Você está lidando com invasores hostis que não cooperarão com seu projeto. Nesse caso, por que você se importa com o Hostcabeçalho que eles estão enviando? Limite-os de taxa por IP.

2) Você está lidando com clientes cooperantes que impõem mais carga do que você deseja. Nesse caso, basta aceitar a solicitação e enviar uma resposta solicitando que recuem.

Se você tiver uma situação mais complicada que não se enquadre em uma dessas duas categorias simples, a melhor solução provavelmente dependerá de qual é a situação.

Responder2

Você pode bloqueá-lo via Apache com módulos semelhantes. Ou se você quiser eliminá-lo mais cedo, você pode usar a correspondência de strings do iptables para bloquear coisas por meio de um regex.

Responder3

Isto é o quetccomando/utilitário é para - é preciso um pouco de trabalho, mas vale a pena o esforço. Eu o uso para limitar a taxa de transferências para um servidor em uma DMZ fora de nossa LAN corporativa.

Aqui estão alguns links que me colocaram no caminho certo ...

Filtro Tc - Faixas de portas Calculam valor da máscara: http://mailman.ds9a.nl/pipermail/lartc/2007q4/021739.html

Taxa limitando um único host ou máscara de rede: http://lartc.org/howto/lartc.ratelimit.single.html

http://www.linuxquestions.org/questions/linux-networking-3/limit-bandwidth-rate-for-scp-using-tc-htb-linux-825684/

informação relacionada