通过带宽限制成员资格

时间:2011-06-16 13:34:42

标签: php apache codeigniter amazon-s3 amazon-ec2

我刚刚将一个Codeigniter应用程序部署到Amazon EC2(使用S3作为媒体,RDS作为MySQL)。

我需要根据使用的带宽量限制用户帐户访问权限 - 帐户将基于带宽,例如基本帐户£x,每月最高20GB等。

但是我不知道最好的办法是什么。

如果有帮助,我的EC2实例是带有Apache2的Ubuntu。

任何想法都赞赏!

谢谢!

4 个答案:

答案 0 :(得分:4)

您可以使用亚马逊的API检查带宽使用情况,而不是使用日志。 正如您所说的那样,您正在使用s3来管理资产,如果您为每个用户创建一个新存储桶并检查带宽使用情况,然后在他/她超过该限制时限制该帐户,那将会很好。

答案 1 :(得分:2)

限制linux pc每个连接的带宽

你必须安装" Lighttpd"工具,它是一个Web服务器。限制每个连接的带宽很有用,我还安装Axel来增加和减少连接数。

sudo apt-get install axel

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

每个连接我在此路径/ etc / lighttpd /lighttpd.conf中添加此命令。

connection.k bytes-per-second = 70

我将带宽限制为70 kb / sec,我测试了每个连接5次,并且观察到最小时间,最大时间和我计算的平均时间。我重复了多达10个连接。

答案 2 :(得分:0)

您可以使用Apache创建自定义日志以跟踪传输的字节数。困难的部分是将其与给定用户相关联。可能是cookie和远程IP的组合。

然后您将获取该日志并在后台处理它。

S3 / Cloudfront可以提供类似的日志,但您可能无法将其与用户关联。

答案 3 :(得分:0)

如果在PHP中使用输出缓冲,则可以在调用ob_get_length()之前调用ob_end_flush()以获取要发送给客户端的输出缓冲区的大小。

如果你还为所有文件实现了一个PHP处理程序(而不是允许通过Apache直接链接到这些文件),那么你就可以很好地了解每个客户端发送了多少内容。