【发布时间】:2013-12-12 16:53:27
【问题描述】:
一年半以来,我一直在通过 WAMP 运行 Apache(自然而然地使用 HTTPD)没有问题,或者至少没有这样的问题。在这个系统上,我们托管了大约 8 个不同的网站和一些使用 MySQL 数据库的应用程序。
最近,当我使用相同版本的 Apache、MySQL 和 PHP 以及几乎相同的配置文件在相同的操作系统上重建系统时,我遇到了一个完整的系统崩溃。
我遇到的问题是:在启动时,我们的 Web 服务最初似乎工作正常,这可能会持续一个小时左右,有时更少,有时更多。然而,一段时间后,所有网站突然变得完全不可用,包括 localhost 登陆 Web 服务器本身或任何本地浏览。 Apache 识别为仍在运行,仍在侦听端口 80,并且没有异常访问或错误日志(包括在调试模式中)。
我已经检查了很多次,重新安装了 WAMP 并交换了不同版本的 Apache。此外,与旧系统相比,我已经审查了配置文件,并确保模块、扩展等与我们之前的版本相同。
在我继续努力寻找可能导致此错误问题的原因时,我非常感谢任何见解。
--
一些额外的细节和注释可能会很有见地。
- 我已确保防火墙不是问题,而且这并不能解释 localhost 的突然停机或停机时间。
- 仅重新启动 Apache 服务往往会解决问题,但只能解决一小段时间。
- 因为我们托管多个网站,所以我们使用虚拟主机。当系统启动时它们工作正常,我认为它们没有问题。
- 该问题往往会导致无限期的“等待主机(site.com、localhost 等)”。
- 当我在那个不确定的错误期间重置 Apache 时,它会出现“与 site.com 的连接被中断。”的错误,所以某些东西仍在运行。
- 在这些停机期间,httpd -d DUMP_VHOSTS 能够返回活动的虚拟主机。
- 在站点“关闭”时使用 ab -n 1000 site.com,会出现以下结果:
对 site.com 进行基准测试(耐心等待)
已完成 100 个请求
已完成 200 个请求
apr_pollset_poll:指定的超时已过期(70007)
总共完成了 216 个请求
【问题讨论】:
-
您是否收到任何响应或只是请求超时?另外,这些网站是公开的吗?您是否查看了访问日志以了解服务器是否不堪重负?
-
据我所知,Apache 没有接收或处理任何请求。数据包正在通过防火墙,因为我认为这可能是问题所在,但日志中没有任何内容表明 Apache 在此停机期间对任何请求进行了任何操作,因此任何访问任何内容的尝试都是活动网站或只是内部 localhost 登陆卡在“Waiting for localhost”或“Waiting for site.com”上。
-
停止响应后,
httpd -D DUMP_VHOSTS是否返回您加载的虚拟主机?您是否尝试过 Logger/Log View (msdn.microsoft.com/en-us/library/windows/hardware/…)?另外,您是否尝试过只访问一个虚拟主机(每个都进行测试)并使用ab -n 1000 hostname.com模拟大量请求? -
它能够在关闭时返回虚拟主机。我还没有对 Logger / LogView 做任何事情,我很快就会调查。使用一台虚拟主机,我得到了上述响应(见主帖)。