我刚刚将一个Codeigniter应用程序部署到Amazon EC2(使用S3作为媒体,RDS作为MySQL)。
我需要根据使用的带宽量限制用户帐户访问权限 - 帐户将基于带宽,例如基本帐户£x,每月最高20GB等。
但是我不知道最好的办法是什么。
如果有帮助,我的EC2实例是带有Apache2的Ubuntu。
任何想法都赞赏!
谢谢!
答案 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直接链接到这些文件),那么你就可以很好地了解每个客户端发送了多少内容。