Apache 对于决定我的服务器是否“可用”的脚本,我可以依赖什么条件;向上;?
我通常每周至少处理24台服务器。我认为创建一个脚本来查询它们并确定它们是否处于“启动”状态是个好主意Apache 对于决定我的服务器是否“可用”的脚本,我可以依赖什么条件;向上;?,apache,http,language-agnostic,head,Apache,Http,Language Agnostic,Head,我通常每周至少处理24台服务器。我认为创建一个脚本来查询它们并确定它们是否处于“启动”状态是个好主意 服务器运行Apache2或IIS7 托管提供商各不相同 每台服务器上通常有多个站点 设置不一致,当您直接访问ip时,并不总是有默认的apache“hello world”页面 网站都是虚拟主机 我在想,确定它们是否正常运行的最好方法是从每台服务器上获取一个站点,并发出http HEAD请求以确保服务器的响应正常吗?显然,如果: 当站点配置/设置应返回4xx错误代码时,它不正确地返回200 O
- 服务器运行Apache2或IIS7李>
- 托管提供商各不相同
- 每台服务器上通常有多个站点
- 设置不一致,当您直接访问ip时,并不总是有默认的apache“hello world”页面
- 网站都是虚拟主机
)的配置被禁用,或者该站点已移动到其他服务器import http
list = {
'72.0.0.0' : 'domain.com',
'71.0.0.0' : 'blah.com',
}
serverNames = {
'jetty' : '72.0.0.0',
'bob' : '71.0.0.0'
}
for each ( list as server => domain ) {
headRequest = http.head( domain )
if ( headRequest.response == 200 && http.arecord(domain) == server ) {
print serverNames[server] + ' is up ';
} else {
print 'Server is either down or the site attached to the server lookup has moved.';
}
}
我可能会用Python或PHP编写脚本,但这个问题只是讨论逻辑。逻辑对我来说似乎很合理。我建议扩展它,在apache服务器上使用mod_status模块。在进行头部检查之后,还要尝试获取/server状态,并使用该状态再次检查服务器是否正常。我是这样想的:
statusRequest = http.get('/server-status')
if(statusRequest == 200) {
// Make sure you don't have insane load averages, etc
}
else { /* Check something IIS specific, or just be happy the head check worked */ }
我过去使用过的另一种技术是检查我知道应该给出404的东西。这样,您就有更好的机会知道服务器是否正在向任何提出请求的人分发200份。(我看过一次,因为配置不好)