我只是在寻找解决此问题的最佳方法。
问题: 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)。
答案 0 :(得分:2)
你可以对php脚本执行AJAX请求来检查或者制作一个cronjob来检查服务器所有10分钟(例如)(你不能直接检查cronjob,你必须这样做使用(php)脚本)并将结果保存在文件中。在您的脚本中,您只需加载文件并阅读其中所写的内容,然后显示服务器在线或服务器不在。