2016-09-19 22 views
0

我試圖找到客戶端關閉瀏覽器連接(499 HTTP狀態)的時間。我可以看到那些在Nginx的訪問日誌,但我不知道如何訪問從PHP。如何將nginx HTTP狀態碼(在訪問日誌中)傳遞給php。

+0

您應該使用(優選)搜索引擎+ cron作業(用於索引),該作業從日誌中索引數據,例如:ElasticSearch。這個https://github.com/elastic/elasticsearch-php –

+0

有一個php庫,但是當你的php代碼正在被處理時,連接沒有關閉。只有當它發送的響應被髮送到客戶端時,連接纔會被關閉,在生成之前如何訪問它? – Satys

回答

0

您必須使用PHP腳本解析您的nginx訪問日誌文件,並使用cron運行它或像守護程序一樣運行。

這裏的例子:

<?php 

$handle = fopen("/path/to/your/access.log", "r"); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     if(strstr($line, 'HTTP/1.1" 499')){ 
     echo $line; 
     } 
    } 

    fclose($handle); 
} else { 
    // error opening the file. 
} 

?> 

確保當前腳本能夠讀取訪問日誌文件的權限。

相關問題