Na verdade, você pode usar Nginx limit_req módulo e também Nginx limit_conn
Ambos os módulos são capazes de limitar as conexões de uma fonte específica e também de limitar pedidos feitos de IPs, e isso no seu caso pode ser muito útil
De acordo com o reuqest, o nginx também pode ser usado para limitar a largura de banda.
location ^~ /videos/ {
...
limit_rate_after 100m;
limit_rate 150k;
...
}
neste exemplo limit_rate_after 100m;
nginx irá ( por cada conexão de usuário, esteja ciente disso ) a conexão de aceleração para um máximo de 150k
. Então, por exemplo, se você precisa permitir até 100m de largura de banda total e, em seguida, restringir a velocidade, isso pode ajudá-lo.
Esteja ciente de que esta solução limita a velocidade de download do nginx por conexão, assim, se um usuário abrir vários arquivos de vídeo, ele poderá fazer o download de 150k xo número de vezes que ele se conectou aos arquivos de vídeo. Se você precisar definir um limite para as conexões, poderá fazer isso com as diretivas limit_zone e limit_conn . Exemplo:
Dentro da sua configuração de bloqueio de servidor:
limit_rate 128K; limit_zone one $binary_remote_addr 10m;
Dentro da configuração do seu bloco de localização:
limit_conn one 10;
Neste exemplo, permitiria 10 conexões por IP com 1 Mbit cada.