我们的 DMZ 中有一个 Web 服务器,用于提供 ASP.NET Web 应用程序。该应用程序已经运行了大约 2 个月并且运行良好,但我们定期收到用户的电子邮件,说他们无法访问该网站,因为他们遇到超时或链接损坏或找不到页面等...
我的第一个想法是,这是他们的问题,因为我们已经让人们从世界各地测试该网站,没有任何问题,也没有已知的停机时间。我的问题是我不想只告诉用户,“问题出在你身上,想办法解决。” 我想有办法向他们证明这一点,或者可能有一些步骤让他们向自己证明这一点。
对我自己或有问题的用户有什么建议吗?
编辑:为了澄清一点,问题在于一遍又一遍地使用相同的用户(到目前为止总共有 5 个),他们根本无法访问该网站。因此,这不是特定于页面的问题。到目前为止,我希望我可以将多个答案标记为答案,因为它们都很好。
也感谢您的快速转身。在这里询问和获得答案比联系我的内部服务器/网络组要快:)
您可以使用此站点来验证您的站点是从“外部”启动的
如果用户更精明并且愿意为您做一些额外的工作,请让他们将“YSlow”插件加载到 Firefox 中,然后访问您的网站。这将有助于识别性能瓶颈、断开的链接等。
有许多服务可以从多个位置测试您的站点,并为您提供每个位置的响应时间报告。一个这样的网站是mon.itor.us
您可能还想检查您的服务器设置和日志。也许您正在最大化允许的连接数、带宽、内存或CPU 容量?
从多个位置使用远程监控服务。Website Pulse 是一款便宜且易于自行设置的好产品。它可以让您了解您的网站在世界不同地区和不同网络上的表现。
他们可以向您发送电子邮件和 SNMP 陷阱,让您知道您的站点何时运行缓慢或没有响应。
我在上一家公司遇到了这个问题。我会在家中远程进入我的机器并查看网站。这样做时遇到了一个问题,我和我们的服务器在同一个 ISP 上,所以这不是来自外部的真正检查,只是在我们的防火墙之外。
现在我使用 downforeveryoneorjustme.com 除了我的远程到家来检查。
此外,如果您的公司有多个站点,您可以使用 Nagios 甚至 powershell 来检查网站并在它们出现故障时提醒您。只需确保在支票中使用您的公共地址即可。
我使用 Pingdom 取得了巨大成功。您可以创建测试 DNS、ICMP、HTTP 连接以及 HTTP Get 和 Post 方法的检查,以确保您的站点返回有效响应并且脚本/表单正常工作。
合理的定价和支票来自 5 或 30 个地点(分别为基本帐户或商业帐户)。他们还跟踪来自这些位置的响应时间,以便您了解您的网站在世界各地的表现。
如果这是一个间歇性问题,那么它可能是由沿途任何地方的瞬态网络问题或服务器性能问题引起的。可能的原因有很多!您需要消除服务器作为问题的原因。检查事件操作系统日志、IIS 错误日志等。尝试在问题发生时立即与您联系。要求他们对服务器进行跟踪或路径分析以诊断网络问题。并在问题发生时检查服务器的高负载。
要获得更确凿的答案,我们需要更多信息。
当然,网站存在“正常”的停机时间……您可以尝试自己从外部监控网站并检查其正常运行时间。只要根据您的 SLA,它高于您的 4 或 5 个 9,有时这才是最重要的。
如果您已经有来自世界各地的人使用该网站,您应该将遇到问题的用户指向http://downforeveryoneorjustme.com/之类的内容。这是为了向他们证明,无论问题是什么,都不是你。您还应该设置某种实际加载网页的内部监控。监控网站不仅仅是获得 200 OK 消息。您需要一个实际在正确页面上查找内容的监控解决方案。如果存在某种后端连接(SQL DB、ADAM 授权),则监控解决方案也应该能够使用该连接加载页面。
以一种或另一种方式证明它是困难的,因为互联网路由可能很有趣,DNS 疼痛也是如此。
请记住,问题可能既不是你也不是他们,也可能是你们之间的互联网。就像您的 ISP 的 ISP 的 DNS 一样。或者他们的 ISP 的 ISP 的 ISP 的路由。或者你的网络服务器的前缀可能被其他人的 AS 广告的网络掩码太宽(它发生在谷歌!)
要明确知道您需要从其位置对您的站点进行 nslookup 测试,最好从根名称服务器 egaroot-servers.net 开始。和工作。您想尝试根目录和网络服务器主机名的权威 DNS 服务器之间路径中的所有 DNS 服务器,因为偶尔会发生其中一个权威服务器将是 fubar 但其他可以,所以它适用于您,但不适用于他们.
假设 DNS 正常,那么他们需要查看数据包是否可以到达您的手中。即在第一个实例中ping。而且您需要确保您的数据包可以返回。ping 他们回来。假设一切正常,那么您可能想让他们对您的网络服务器执行 wget、curl 或 telnet 并手动执行 GET(以消除浏览器缓存)。那么说你的座位是可以到达的可能是合理的 - 假设它是。如果没有,那么您将有一个合理的想法,问题出在哪里。
如您所见,这不是一件小事。
正如其他人所建议的那样,一些商业服务器可以提供帮助,因为可以将您自己的服务器定位在多个网络上的多个位置并相互检查。
如果您需要相当完善的监控服务,我建议您查看Keynote或Gomez的内容。
如果您托管 Web 服务器,则需要外部服务来检查它,或者如果 Web 服务器是外部的,您可以自己托管监控服务。
在任何情况下,除了你的情况,但无论如何 - 通常你需要做的不仅仅是检查响应......
为响应中的特定内容配置检查,例如,您不会允许成功的响应只是一个错误页面或其他一些站点故障作为绿灯溜过 - 走来走去认为一切都很好,但实际上不是^^
监控任何服务并不像听起来那么容易,这就是为什么真正有用的套装通常非常复杂和/或昂贵的原因。当然,简单的方法可能涵盖基础知识,尤其是在这种特定情况下。