2011-06-16 48 views
9

我剛剛將一個Codeigniter應用程序部署到Amazon EC2(使用S3用於介質和RDS for MySQL)。按帶寬限制成員身份

我需要根據使用的帶寬量限制用戶帳戶訪問 - 帳戶將基於帶寬,基本賬戶£高達20GB每月等

但是我不知道什麼是最好的方式來做到這一點。

我的EC2實例是Ubuntu和Apache2(如果有幫助的話)。

任何想法讚賞!

謝謝!

回答

4

您可以使用亞馬遜的API來檢查帶寬使用情況,而不是使用日誌。 正如您所說您正在使用s3來管理資產,如果您爲每個用戶創建一個新存儲桶並檢查帶寬使用情況,並在超過此限制的情況下限制該帳戶,那將會很好。

+0

謝謝,這似乎是最實際的解決方案。 – 2011-06-16 14:34:44

+2

請注意,您無法爲每個Amazon帳戶創建超過100個存儲分區。 – 2011-06-17 11:55:10

+0

@Geoff Appleford謝謝傑夫,我不知道。 – 2011-06-20 09:18:26

0

您可以使用Apache創建自定義日誌來跟蹤傳輸的字節數。困難的部分將會與給定的用戶相關聯。可能是Cookie和可能的遠程IP的組合。

然後,您將採取該日誌並在後臺處理它。

S3/Cloudfront可以提供類似的日誌,但您可能無法將其與用戶關聯。

0

如果您在PHP中使用輸出緩衝,您可以在撥打ob_end_flush()之前調用ob_get_length()來獲取發送給客戶端的輸出緩衝區的大小。

如果您還爲所有文件實現了PHP處理程序(而不是允許通過Apache直接鏈接到這些文件),那麼您對於發送每個客戶端的內容到底有多少內容有相當不錯的想法。

2

限制每個對Linux的PC

每個連接您必須安裝「Lighttpd的」工具,它的一個網絡服務器的帶寬。限制每個連接的帶寬非常有用,並且我還安裝了Axel以增加和減少連接數。

命令和apt-get安裝阿克塞爾

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

每個連接我在這條道路的/ etc/lighttpd的/lighttpd.conf添加此命令。

connection.k字節每秒= 70

我限制爲70千字節/秒的帶寬和I測試的每個連接爲5次,我觀察最短時間,最大時間和予算出的平均時間。我重複了這10個連接。