2011-09-06 41 views
0

我增強PHP的圖片託管腳本,但我面臨的一個問題:客戶端已請求的功能限制所使用的帶寬量,爲每個圖像,爲100MB /天 這包括縮略圖在圖像主機腳本中,如何測量圖像的帶寬消耗?

到目前爲止,縮略圖已經直接提供,而不使用PHP(使用nginx) 我試過使用php腳本代替直接的.jpg,使用極其緩存的代碼(使用APC的緩存來存儲使用的帶寬量,並使用X-Sendfile標頭提供映像),但由於連接數量非常非常大,服務器只會窒息

是否有一種更有效的方式來測量縮略圖使用的帶寬,而不會窒息t他的CPU和RAM? 這個問題通常如何解決?

謝謝

+0

嘗試在serverfault.com – ajreal

回答

0

解析服務器訪問日誌。我相信他們在/var/log/nginx/access.log中的nginx。您可能需要更改權限以允許訪問,或者如果您不滿意,可以使用cron定期將該文件複製到可訪問的文件夾中。

我想,如果你緩存結果,並且只檢查一次或一次,那麼你可以使用grep -c來做到這一點。

我很想知道,如果你選擇,你知道已經被訪問的文件,如何長時間才能運行:

grep -c filename.jpg /var/log/nginx.access.log 

然後,您可以簡單地乘上計數通過文件大小來獲得該圖像的帶寬。

+0

問題是服務器訪問日誌在幾個小時後長到幾百GB ..這可行嗎? – Igor

+0

我已經在上面添加了更多信息。 –

+0

實際上,當我通過控制檯發送grep命令時,它只能無限期地發送。 access_log文件是800gb – Igor