Server2脱机时显示Server1

时间:2014-07-31 18:20:43

标签: javascript php ajax web-services ping

我只是在寻找解决此问题的最佳方法。

问题: Server2脱机时显示Server1

我做了什么,但我对下面的结果不满意。

PHP:

function ping ($host, $timeout = 1) {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$host);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}


$ping = ping('server2.domain.com');
if($ping==false){
  $warningText = "Server2 is not available.";
  echo "<li class='navbar-text hidden-xs'><span style='color:#d9534f;' id='warning' class='glyphicon glyphicon-warning-sign' data-toggle='tooltip' title='" . $warningText . "' data-placement='bottom'></span></li>";
}

结果是,如果服务器根本没有响应(因为它处于脱机状态),网站会在处理此ping请求时挂起很长时间。

我应该加载页面并执行ajax onload,还是有其他方法可以更好地为此工作?

我拥有两台服务器,它们在子域中是彼此外部的(domain.com检查server2.domain.com)。

1 个答案:

答案 0 :(得分:2)

你可以对php脚本执行AJAX请求来检查或者制作一个cronjob来检查服务器所有10分钟(例如)(你不能直接检查cronjob,你必须这样做使用(php)脚本)并将结果保存在文件中。在您的脚本中,您只需加载文件并阅读其中所写的内容,然后显示服务器在线或服务器不在。