Magic_Moment
@Magic_Moment

Как ограничить общую скорость для Всех соединений для 1 IP в NGINX?

Здравствуйте.
Необходимо ограничить общую скорость загрузки файлов для 1 IP на сервере NGINX.
Сейчас я использую limit_rate в основном файле конфига nginx.conf в контексте http и это решение для меня работает, но лишь частично:
http{
limit rate 120k;
}
Если открыть много вкладок и начать загружать одновременно сразу много файлов, то общая скорость загрузки вырастет кратно количеству загружаемых файлов. И это не то, чего мне хотелось бы.

Мне кажется неплохим это решение, с добавлением limit_conn_zone, но почему-то оно не срабатывает. А сдружиться со сборкой пакетов NGINX для установки модуля limit_speed_zone пока не получилось.

так же пробовал ограничить не скорость, а количество одновременных соединений на 1 IP, чтобы нельзя было одновременно скачивать больше N файлов. Решение, описанное здесь у меня не сработали. Возможно, потому что загрузка файлов идет через GET-параметр вида /load.php?file= , а модуль обрабатывает только статические запросы (не GET(но возможно я ошибаюсь)).

Кто может подкинуть идеи, как еще можно настроить сервер, задав нужные ограничения?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
Magic_Moment
@Magic_Moment Автор вопроса
В общем, может быть кому будет полезно. Я снизил скорость загрузки до 120 кб/с с помощью

http{
limit rate 120k;
}
, что надеюсь отобъет желание у кого-либо выкачивать с такой скоростью файлы с сайта. Пока использую этот способ, т.к. лучше не нашел :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
То, что вы хотите, нужно делать не на веб-сервере, а на фаерволле, трогающем сетевые пакеты непосредственно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы