Ограничить скорость на выполнение определенных внешних запросов?
Здравствуйте!
Допустим есть многопользовательский движок, некоторые части которого могут что-то парсить из вне по команде пользователя. Хотелось бы ограничить скорость некоторых внешних запросов для некоторых пользователей.
UPD:
Интересует с помощью каких серверных технологий такое можно реализовать — возможно через nginx или apache или юниксовые утилиты как-то можно ограничить определенные запросы? Или нужно пропускать подобные запросы через самописную утилитку и там, на уровне системы обрезать скорость? Как это лучше сделать? Дописать что-то не проблема, хотелось бы понять теорию. Задача, думаю, ясна.
Сейчас продумывается архитектура веб-приложения, поэтому на каком интерпретируемом языке будет написан движок, думаю, роли не играет. Допустим пока на PHP.
А какие технологии будут использоваться? Просто сейчас я не понимаю, что тут можно ответить. Или вы хотите пример архитектуры, которая выполнит это требование?
У вас же наверняка есть градации с фиксированной скоростью:
пользователю с ролью A — скорость 100Кб
пользователю с ролью B — скорость 200Кб
Если так, то можно использовать набор локальных прокси, у каждой из которых будет стоять ограничение на скорость загрузки. Squid к примеру это позволяет.
Чуть-чуть еще по сквиду — он дает возможность выставлять ограничение скорости в зависимости от заголовка запроса, так даже проще, будете посылать какой-нибудь свой специальный заголовок, идентифицирующий пользователя.