Ограничение членства по пропускной способности - PullRequest
9 голосов
/ 16 июня 2011

Я только что развернул приложение Codeigniter в Amazon EC2 (используя S3 для мультимедиа и RDS для MySQL).

Мне нужно ограничить доступ к учетной записи пользователя в зависимости от используемой пропускной способности - учетные записи будут основываться на пропускной способности, например, Базовый счет £ x до 20 ГБ в месяц и т. Д.

Однако я понятия не имею, как лучше всего это сделать.

Мои экземпляры EC2 - это Ubuntu с Apache2, если это поможет.

Любые идеи приветствуются!

Спасибо!

Ответы [ 4 ]

4 голосов
/ 16 июня 2011

Вы можете использовать API Amazon для проверки использования полосы пропускания вместо использования журналов.как вы сказали, что вы используете s3 для управления активами, было бы хорошо, если бы вы создали новый сегмент для каждого пользователя и проверили использование полосы пропускания, а затем ограничили учетную запись, если он / она превысит этот предел.

2 голосов
/ 20 апреля 2012

Ограничение пропускной способности для каждого соединения для Linux PC

Вам необходимо установить «Lighttpd» - это веб-сервер. полезно ограничить пропускную способность для каждого соединения, и я также устанавливаю Axel для увеличения и уменьшения количества соединений.

sudo apt-get установить аксель

http://www.cyberciti.biz/tips/installing-and-configuring-lighttpd-webserver-howto.html

для каждого соединения я добавляю эту команду в этот путь / etc / lighttpd /lighttpd.conf.

connection.k байт в секунду = 70

Я ограничил полосу пропускания для 70 кбит / с, и я проверил каждое соединение 5 раз, и я наблюдал минимальное время, максимальное время и вычислял среднее время. Я повторил это до 10 соединений.

0 голосов
/ 16 июня 2011

Если вы используете буферизацию вывода в PHP, вы можете вызвать ob_get_length() непосредственно перед вызовом ob_end_flush(), чтобы получить размер буфера вывода, который вы отправляете клиенту.

Если вы также реализуетеPHP-обработчик для всех файлов (вместо того, чтобы разрешать прямые ссылки на файлы через Apache), у вас было бы достаточно приличное представление о том, сколько контента вы отправляете каждому клиенту.

0 голосов
/ 16 июня 2011

Вы можете создать собственный журнал с Apache для отслеживания количества переданных байтов.Сложная часть будет связывать это с данным пользователем.Возможно, это комбинация файлов cookie и, возможно, удаленного IP-адреса.

Затем вы берете этот журнал и обрабатываете его в фоновом режиме.

S3 / Cloudfront может предоставить аналогичные журналы, но вы, вероятно, не сможетепривязать его к пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...