2013-07-01 41 views
0

我有apache下來檢查腳本(遠程服務器),但我認爲它不起作用,如果httpd有超時問題或類似的東西。如何讓更好的httpd down checker?

例如,網站處於離線狀態,但服務器處於聯機狀態。 我應該把超時的東西或其他東西?怎麼樣??

<?php 
function GetServerStatus($site, $port) 
{ 
$status = array("OFFLINE", "ONLINE"); 
$fp = @fsockopen($site, $port, $errno, $errstr, 2); 
if (!$fp) { 
    return $status[0]; 
} else 
    { return $status[1];} 
} 
?> 

<?php 
$status = GetServerStatus('xxx.xxx.xxx.xxx',80); 
    if($status == 'OFFLINE') { 
    $message = "Server is down now!!"; 
} 
?> 
+0

這取決於你的意思是「脫機」。是「502對不起,我無法打開數據庫連接」離線?請求根頁面並在「內容區域」中檢查它是否是一個字符串,這可能是我願意做的最嚴格的「活力」檢查:它顯示服務器處於活動狀態,爲狀態爲200的根頁面提供服務,其內容模糊了我的預期。 –

回答

0

我不明白這怎麼可能報告不正確。您可以考慮發送GET /請求並將其計時。

您也可以考慮在成功案例中關閉套接字。