网站崩溃是研发团队最怕看到的情况,但是由于种种原因却时常出现,作为测试人员,我们更应该比一般人了解网站崩溃的原因及排查方法,这是我们测试工作的重要一环。接下来我就谈谈12种常见的网站崩溃原因以及如何跟踪和解决它们。

你的网站可能崩溃的12种原因:

1-网络的问题

2-第三方服务问题

3-高流量

4-代码错误

5-DNS错误

6-网络被攻击

7-服务器故障

8-被百度列为黑名单

9-云提供商停机时间

10-人为的错误

11-缓存问题

12-数据库问题

什么是网站崩溃?

简而言之,当网站停止正常工作并阻止用户访问它时,就会出现网站崩溃。一旦你收到来自网站的错误并看到它停止加载任何数据并且无法在线访问它,你就知道网站崩溃了。

为了使网站正常运行而不会出错,浏览器必须能够处理服务器发送的所有数据。在这种情况下,如果其中一个资源由于技术故障或服务器错误而无法加载,浏览器将停止进一步处理。这就是“网站崩溃”的发生方式!

当Web浏览器无法加载运行所需的资源时,它会自动停止网站上的所有活动并保持这种状态,直到错误得到修复。

网站可能崩溃的12种原因

你可能听说过一句名言,“明确问题就是解决了一半”,这就是为什么你应该找出导致网站崩溃的原因。

1.网络的问题

很多人在访问某网站失败后,尝试了各种方法去找原因,结果最后发现却是网络的问题,而这往往被人忽视,所以在这里首先要强调的是如果网络中断、网络延迟、防火墙屏蔽等等都可能导致网站崩溃。

解决办法:

检查网络连接确保DNS解析正常,检查防火墙设置,确保没有误屏蔽。

2.第三方服务问题

网站依赖的第三方服务(如支付、推送服务等)出现问题,所以第三方服务出问题也可能会引发网站崩溃。

解决办法:

检查第三方服务的状态,查看服务提供商的通知,考虑备用方案或者降级处理。

3.高流量

很多网站都希望访问量越多越好,但同时还必须考虑网站的处理能力,当太多人试图同时访问该网站时,可能会导致该网站崩溃,比如国内有时候会因为某个明星的新浪微博成热点同时被千万人访问而陷入瘫痪,这种情况有时候也被黑客用来进行流量攻击!

解决办法:

使用负载均衡器、增加服务器容量、使用缓存等措施来处理高流量。

4.代码错误

存在错误或不完善的代码可能导致崩溃,例如,代码中的错误、未处理的异常、死循环等等。此外,如果服务器备份也不佳,也可能会遇到崩溃。

解决办法:

查看服务器日志、前端日志,修复代码中的错误,确保异常情况能够被适当地处理。

5.DNS错误

DNS代表域名系统,出现这类问题主要是因为无法连接到IP地址的网站而崩溃。Web浏览器使用IP地址来查找网站,而DNS将域名转换为IP地址,这意味着如果在此过程中出现任何问题,网站将无法访问。

与DNS错误相关的最常见问题是DNS记录配置不正确、TTL值高、DDOS攻击、高DNS延迟和网络故障。

解决方法:

检查域名是否正确配置了DNS解析。确保DNS解析记录正确,包括主机记录(如www、api)等。

刷新本地DNS缓存或者更换DNS服务器。检查网络连接,确保没有网络问题。使用可靠的DNS服务器,提高DNS查询的成功率。检查域名是否过期,及时续费。确保域名已正确绑定到服务器的IP地址等等。

6.网络被攻击

未加密或未受保护的网站通常会成为黑客恶意攻击的目标,导致它们崩溃。DDoS和僵尸程序是网络犯罪分子用来攻击影响网站性能的常用策略,严重的情况下会导致网站崩溃。

解决办法:

使用安全工具监测和防御攻击,及时更新网站的安全策略,修复潜在的安全漏洞。

7.服务器故障

服务器硬件故障、内存不足、磁盘空间不足等问题都会引起网站崩溃,这也是我们性能测试中常关注的几个性能指标。

解决办法:

检查服务器硬件状态,确保足够的内存和磁盘空间。重启服务器可能暂时解决问题,但需要进一步调查原因。

8.被百度列入黑名单

百度已建立日常巡查机制和举报处理机制,一旦发现违规网站,一经查实立即下线并列入黑名单,并将积极配合公安部门及其他监管机构进行调查,目前百度正在对全部旅行网站进行人工页面排查,如排查到本报中所曝光的旅行社网站,百度将立即对其予以下线、屏蔽,并加入黑名单,永久禁止其再进行搜索引擎营销。

解决方法:

咨询开发人员和IT部门,清理恶意软件或违规内容。

9.云提供商停机时间

网站也有可能因为云提供商关闭而崩溃。尽管这个问题可能令人无语,但你对此无能为力。导致此问题的原因可能有多种,例如维护或提供服务方式的更改。

解决方法:

联系网络托管服务提供商,以确保问题来自他们。他们应该可以帮助你解决任何问题。如果有网站的备份,考虑在云服务商解决问题之前使用备份进行快速恢复,确保备份是最新的。

10.人为的错误

有人说“犯错是人之常情”,所以也许下次你在网站上遇到停机时,你也应该寻找内部错误。一般来说,人类是伟大的,但也不能免于犯错。服务器上的人为错误,无论是由疏忽、无知、缺乏经验还是简单的意外错误引起的,都会直接影响网站的性能。

解决方法:

最好通过记录所有程序来使维护和要求尽可能系统化。换句话说,参与的人越少,错误就越少。因此,你还可以利用软件集成和自动化。

11.缓存问题

缓存失效、缓存设置不当等也会引发网站崩溃。

解决方法:

检查缓存设置,确保合理使用缓存,及时更新缓存。

12.数据库问题

数据库连接问题、查询性能问题、数据库死锁等也会引发网站崩溃。

解决办法:

检查数据库连接是否正常,优化查询语句,监测数据库性能,处理可能的死锁情况。

总结

是的,网站可能会崩溃,但找出原因可以帮助更快地解决问题并将损失降至最低,没有办法保证网站永远不会崩溃,但如果采取一些预防措施,可以减少它发生的概率。

最后:在我的V:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。