2013-11-27 71 views
0

我們正在計算NGINX/apache訪問日誌的客戶的流量使用情況。 現在我想起了一個很大的問題。PHP流量統計

如果我這樣做:

<?php 
    file_get_contents("http://www.speedtest.qsc.de/1GB.qsc"); 
?> 

調用本身將是一個簡單的GET只有幾個字節/千字節,但假設我們有足夠的memory_limit的和的max_execution_time,腳本會下載一個1GB的文件。 這根本不會被記錄,對吧?

有什麼方法可以跟蹤上面提到的東西嗎?

在此先感謝

回答

0

爲Apache默認日誌

LogFormat "%h %l %u %t \"%r\" %>s %b" 

的%b表示Size of response in bytes, excluding HTTP headers. In CLF format, i.e. a '-' rather than a 0 when no bytes are sent

你也許可以使用

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html

爲nginx的它也是defa ULT

log_format compression '$remote_addr - $remote_user [$time_local] ' 
         '"$request" $status $bytes_sent ' 
         '"$http_referer" "$http_user_agent" "$gzip_ratio"'; 

http://nginx.org/en/docs/http/ngx_http_log_module.html

+0

,將不計流量,如果沒有顯示下載的文件,簡單地丟棄一個PHP下載呼叫將使。響應將是0字節(無輸出) –

+0

這有幫助嗎? http://stackoverflow.com/questions/4470716/writing-to-apache-access-log-file-with-php – crafter

+0

可悲的是 - 我們無法改變客戶代碼中的任何內容,所以我們不能添加任何特殊功能將命令記錄到源本身。 –