2010-11-17 1 views
1

У меня есть рубин на приложении rails на пассажирском/nginx. Приложение позволяет пользователям загружать доступ к очень крупным файлам (резервные копии виртуальных машин, иногда 200Gigs), и я нахожусь на разрывном соединении с моим провайдером до 100 Мбит/с.Как вы можете ограничить скорость загрузки с помощью Rails или Nginx

Проблема в том, что если вы начнете загрузку одного из этих больших файлов, передача будет как можно выше, чем я не хочу. Я хотел бы ограничить загрузку этих больших файлов фиксированной скоростью, такой как 150 Кбит/с, при этом обеспечивая более высокую скорость работы в других частях приложения. Это возможно?

+0

для меня это вопрос serverfault. Это конфигурация nginx. – shingara

ответ

4

Вы должны включить директиву, как это в файле конфигурации Nginx (внутри блока конфигурации сервера):

limit_rate 150k; 

Это ограничивает скорость передачи ответа на клиента. Он работает как предел для каждого соединения, а не для общей скорости передачи сервера. (Возможно, вы можете настроить max_clients = worker_processes * worker_connections как обход для ограничения общей передачи.)

Посмотрите документацию по nginx для limit_rate. Существует также директива limit_rate_after, которая полезна для установки этого предела только после того, как загрузка превышает определенный размер.

Смежные вопросы