A configuração limit_rate de nginx parece superar alguns dos problemas em lula e verniz, como recomendado por outros respondedores. Dos documentos:
Limits the rate of response transmission to a client. The rate is specified in bytes per second. The zero value disables rate limiting. The limit is set per a request, and so if a client simultaneously opens two connections, the overall rate will be twice as much as the specified limit.
Para o meu cenário, onde estou procurando limitar a taxa de bytes de download transferidos para arquivos grandes para solicitações individuais sem limitar a largura de banda geral de um cliente, é exatamente disso que eu preciso.
Lula
agrupamentos de atrasos agrupam clientes (geralmente por IP) e usam uma limitação de taxa com intervalos. No entanto, até os documentos dizem :You can not limit a single HTTP request's connection speed.
Verniz
Varnish vmod_vsthrottle (e da mesma forma libvmod-throttle ) funciona com um algoritmo de token bucket e pega chaves arbitrárias. A implementação parece muito legal, mas parece que não há uma boa maneira de desacelerar o tráfego. Em vez disso, solicitações acima de um limite (em req / s) são respondidas com algo parecido com um 429 .