我们有一个开发Web服务器(Ubuntu的)与一些网站上运行。 大多数时候这工作正常,但自从我们开发的一段时间,我们得到一个“无法连接”的错误,当加载一个网页,没有什么特别的,即使在一个简单的HTML页面。 一分钟前工作正常的页面,这持续了几分钟,之后又开始工作。
所以几分钟,我们不能连接到我们的服务器与http请求,SSH例如工作正常。 我们监视了服务器的负载,但是这一直保持在0.03。
我们认为问题将是Apache或Mysql,但即使重新启动它们,服务器仍然无法访问。
更新:当通过域名服务器不可达时,当我们使用服务器的IP地址时,它仍然工作。 所以我不认为服务器本身是问题,但在路由器上的DNS我们的东西。
任何人都知道问题可能是什么?
你想用内置的server-status模块来监视Apache:
http://httpd.apache.org/docs/2.2/mod/mod_status.html
确保你也在你的全局configuration中设置ExtendedStatus On (不在虚拟主机中)。
然后,您可以检查是否有长期的请求,或者您的工作人员正在耗尽。
当通过域名服务器不可达时,当我们使用服务器的IP地址时,它仍然工作。 所以我不认为服务器本身是问题,但在路由器上的DNS我们的东西。
任何人都知道问题可能是什么?
注意:这取决于服务器返回ping数据包是一个有用的testing。 你的服务器可能被configuration为不是出于“安全原因”(虽然它确实不会给你非常多的安全性)。
当情况正在发生(并且服务器没有响应您的http或https请求),您可以通过主机名ping服务器? 如果是这样,你的ping命令通过DNS(即不是DNS问题)成功parsing服务器地址,并且你的路由器正在将ICMP回应请求传递到地址(即不是路由器问题)。所以如果ping能够工作,你应该集中在服务器上作为可能的罪魁祸首。
如果ping不起作用,则将其作为正常的networking问题进行故障排除(例如,查看DNSparsing,尝试跟踪路由以查看连接尝试是否正在某处死去等)
晚编辑:
我错过了你写的:
所以几分钟,我们无法连接到我们的服务器与http请求,例如ssh工作正常。
从上面的描述中我无法确定您的意思是“ssh servername.domain.tld”是否正常运行,或者您的意思是,如果在发生中断情况时将ssh发送到服务器,您的意思是SSH连接不会丢失。 如果你可以保持ssh'ed和积极连接(即不只是判断你连接,因为你的SSH连接不会掉落),而这种情况发生时,它不可能是一个路由器的问题。 而使用像dig(或nslookup)这样的程序来testingDNSparsing应该是非常容易的,但是一旦你学会了使用它,挖掘就会大大优越。