这是一份针对无法加载的网站、跨越所有产品的排查树。KapsuleHost 运营着多种产品,找到原因最快的方法不是去猜是哪个产品出了问题,而是仔细看浏览器在屏幕上到底显示了什么。下面每个分支都以您能在一分钟内亲自看到或测试的东西为依据,而且每个分支都会排除其他分支。
请从上到下进行。前四个问题能排除排查树的大部分,之后的分支设计为互不重叠:您应该恰好落在其中一个。
划分整棵树的四个问题
在更改任何东西之前先回答这些问题。每个问题都是您可以自己进行的测试,每一个都能排除一整类原因。
1. 是一个平静的页面,还是一个错误? 如果出现一个整洁的页面,说明网站已暂停,那根本不是技术故障。这是账单状态,解决办法在您的账户里,而不在您的代码里。请直接前往下面的分支 A。
2. 用移动数据和用 Wi-Fi 都失败吗? 关掉手机的 Wi-Fi,通过移动网络加载网站。如果用移动数据能加载而用 Wi-Fi 不能,网站本身没有任何问题:故障在于您的本地网络、路由器,或您设备上过时的 DNS 缓存。如果两者都失败,问题是真实存在的,您的访客也会遇到。
3. 是一个页面,还是所有页面? 依次尝试首页、一个内页,以及一个故意编造的地址,例如 /this-page-does-not-exist。这三者中哪些能正常工作,以及编造的地址返回什么,是本指南中信息量最大的一项测试。下面有两个分支仅凭它就能判定。
4. 您看到的是错误,还是别人的网站? 无法加载的网站和加载了错误内容的网站是完全不同的问题。如果出现的是您的旧网站,那么什么都没坏:您的域名仍然指向旧主机。这是分支 D,也是最常被误读的现象。
有一项测试值得跳过:在地址后面加上 ?cachebust=1,在我们的网络上并不会产生人们以为的效果。我们的边缘节点会把查询字符串排除在缓存键之外,所以该地址返回的仍是之前的缓存副本。要强制获取新的响应,请改为添加一个随机的路径段,例如 yourdomain.com/anything-random-here。这是经过测量的行为,不是猜测,在分支 H 中很重要。
第零步:确认是不是我们的问题
在继续阅读之前,先查看平台是否在报告问题。我们的状态页是公开的,无需登录,并持续更新:
您也可以从 KPanel 侧边栏底部的 系统状态 进入。
不要只看标题。找到与您网站所用产品对应的那一行,因为各行是独立出故障的:
| 如果您的网站是 | 请关注这一行 |
|---|---|
| 网站或 WordPress 站点 | 网站托管 或 Managed WordPress |
| 位于我们的 CDN 之后 | Kapsule CDN |
| 使用我们的域名服务器 | 高级 DNS |
| 只在 HTTPS 下失败 | SSL 证书 |
状态页全部正常并不代表您的网站没问题。它说明共享平台没问题,这其实很有用:它告诉您原因在您自己的账户、配置或代码中,并让您直接进入下面的分支。状态页报告的是我们的组件,从不报告您的单个网站。
如需了解您自己具体项目而非平台的可用性,请参阅 正常运行时间监控。正常运行时间监控衡量的是可达性,而不是正确性:一个很快返回损坏页面的网站仍然算作在线。
A:一个平静的暂停页面,而不是错误
您看到的: 网站没有报错。加载出一个刻意设计得很平静的页面,标题是"此网站目前已暂停。"它说明托管处于暂停状态、没有任何数据丢失,并提供一个登录按钮。
含义: 这是账单状态,不是技术故障。服务器是健康的,是在有意这样响应。无论清除多少次缓存、重新指向 DNS 还是重新部署,都不会改变它。
该怎么做: 登录并结清账户。付款完成后几分钟内网站就会恢复,您的数据从未被动过。请从 您的账户为何被暂停 开始,如需了解哪一天会发生什么的完整时间表,请参阅 停止付款会发生什么。
这也能缩小产品范围。 只有托管订阅下的网站才会显示暂停页面。所以暂停页面既告诉您是哪类问题,也告诉您涉及的是哪个产品。
对于搜索引擎而言,暂停页面被有意标记为临时状态,并请求它们不要收录。短暂的暂停不会让您丢掉排名。证书验证不受其影响,所以在您处理账单期间续期仍会正常进行,HTTPS 也不会中断。
恢复服务并不是即时的。 付款会立即更新您的账户,但解除 Web 服务器封锁的是一个后台协调任务,它每隔几分钟运行一次。如果付款后暂停页面仍然存在,请等待几分钟,并在隐私窗口中重新加载,然后再提交工单。
A2:您无法登录,但网站正常
您看到的: 与分支 A 相反。访客能完全正常地访问网站,但您进不了 KPanel。登录页面显示"您的账户已被暂停。请联系支持。"
含义: 这也是账单问题,而且是大多数人会误读的情况。有几种账户级暂停根本不会影响网站:手动支付的年度发票、由我们团队发起的暂停,以及通过经销商计费的账户,都会锁定控制面板,而所有网站继续提供服务。网站本身不会告诉您发生了这种情况,这正是值得在这里点明的原因。
该怎么做: 结清发票是必要的,但在这些情况下,仅此一项往往不足以恢复控制面板访问。请用账户邮箱给 support@kapsulehost.com 发邮件,说明您已付款,并请求恢复访问。请附上发票编号。
如果暂停生效时您已经登录,您现有的会话会一直有效直到过期。现在能使用控制面板并不能证明账户状态良好。请直接查看 账单,而不要凭仍处于登录状态来做判断。
C:每个地址都返回首页
您看到的: 首页能加载。内页也返回首页而不是它们自己的内容,一个故意编造的地址(例如 /this-page-does-not-exist)同样以首页响应,而不是 404。
什么时候是正确的: 您的应用采用客户端路由,只是您的路由器没有匹配到这个地址。故障在您的前端代码里,而不在托管上。
什么时候是错误的: 您用的不是客户端路由框架,而一个错误的地址却在悄悄地用首页响应。这值得修复,因为这样一来,损坏的内部链接在每次抓取中都能存活下来,而搜索引擎会对此不利处理。请检查项目的框架预设:您选择的预设优先于我们检测到的,所以选错预设恰好会产生这种现象。
其他所有情况下的正常行为: 如果构建中包含自己的 404.html,未知地址会返回它,并带有真正的 404 状态;如果没有,则返回我们自己的 404 页面。
D:出现的是您的旧网站,而不是新网站
您看到的: 有东西加载出来了,但不对。那是您以前的网站、旧主机的停放页面,或者一个您不认识的"即将推出"页面。没有任何报错。
含义: 您的域名仍然指向旧主机。请求根本没有到达 KapsuleHost,所以您在我们这边做的任何更改都无法影响访客看到的内容。这是托管中最常被误读的现象,因为一个能正常显示的页面会让人觉得有了进展。
如何在一个地方确认:
- 对于在我们这里注册的域名,打开 域名,然后打开该域名。那里的卡片会明确告诉您五种情况中哪一种属实,其中包括"未指向此处",内容为:"我们检查的所有解析器返回的域名服务器都不是我们的,因此该域名的流量没有到达 KapsuleHost。"如果显示的是"传播中",它会说明已有多少个解析器一致,并且通常会在几小时内自行完成。
该怎么做: 在管理该域名的地方修改记录,然后等待。
E:浏览器根本找不到这个域名
您看到的: 浏览器根本无法到达服务器。它提示找不到该地址,或找不到服务器 IP 地址,而且在移动数据和 Wi-Fi 下、在隐私窗口中、对其他人来说都以同样的方式失败。
含义: 这个名称对任何人都无法解析。没有可供跟随的记录,所以请求不是慢或被拒绝,而是根本无处可去。常见原因是域名已过期、域名从未设置过域名服务器、某条记录被删除,或者这个名称只是输入到了我们的控制面板中,却从未在注册商那里创建过。
该怎么做(按顺序):
- 检查域名是否已过期。打开 域名 查看该域名的状态。过期的域名无论托管多么健康都会停止解析,续费是唯一的解决办法。我们的时钟与注册局的时钟并不相同:请参阅 域名续费与过期。
- 在域名卡片上检查委派情况。如果那里显示"无响应",说明没有任何解析器能找到该域名,这通常意味着它是新注册的、已过期,或者没有设置域名服务器。
关于每种记录类型的作用,请参阅 DNS 基础 和 CNAME 记录。
F:出现证书警告而不是网站
您看到的: 浏览器没有加载页面,而是用安全警告拦住了它,提示连接不是私密的。警告背后的网站本身是健康的:这是证书的问题,而不是服务器的问题。
含义: 要么还没有为这个确切的主机名签发证书,要么现有的证书已过期,要么它覆盖的名称与您输入的不同。一种非常常见的情况是 www.yourdomain.com 和 yourdomain.com 没有同时被覆盖,所以一个能用、另一个不能用。请明确测试两种写法:如果一个能加载而另一个出现警告,那是这一个名称的证书和记录问题,而不是服务器问题。
对于托管上的网站,不要相信站点概览页面。 概览页面只把证书显示为"有效"或"待处理",而对于已过期或签发失败的证书,它显示的也是"待处理,证书签发中"。这恰恰在最不该让人安心的时刻让人安心。请进入站点,然后打开 安全,那里显示真实状态:证书还剩多少天,以及一个 立即续费 按钮。那个页面才是如实反映情况的地方,也是您应该查看的地方。
签发证书需要 DNS 先正确,所以如果分支 D 或 E 适用,请先修复它们,再重新签发任何证书。请参阅 SSL 证书;如果挂锁不是缺失而是损坏,请参阅 修复混合内容警告。
G:5xx 错误页面
您看到的: 一个带数字的真正 HTTP 错误:500、502、503 或 504。域名已解析,证书已被接受,服务器也做出了响应。这已经排除了排查树的很大一部分。
含义: 请求到达了我们这里,而其后的应用出错了或没有及时响应。数字很重要:500 是您的应用抛出了错误,502 和 504 与 Web 服务器背后的进程无法访问或响应太慢有关,503 则是有意的拒绝,在托管上,分支 A 中暂停页面的底层就是这样的状态。
该怎么做: 看清数字,然后查看您自己的日志。打开站点,然后打开 日志,查看最近的条目:PHP 致命错误会指明文件和行号,从而找出负责的插件或代码。各状态码的详细说明见 HTTP 错误代码,常见的应用层面原因见 我的网站无法加载。
如果问题是在您做了某项更改之后立刻出现的,那项更改就是首要怀疑对象,而恢复比调试更快。请参阅 从备份恢复。
H:网站能加载,但内容错误或过时
您看到的: 网站能用,但提供的内容已经过时:一个您删除了的页面、一份旧的样式表、一个一小时前部署却没有显示出来的修复,或者一个您已经修好的损坏页面。
含义: 您拿到的是我们边缘节点上的缓存副本,而不是网站给出的新响应。当其后的源站无法访问时,我们的 CDN 会有意继续提供最后一份正常的副本,这通常是一种体贴,偶尔也会让人困惑,因为这意味着一个看起来正常的网站背后,源站可能实际上已经宕机。
如何证明是缓存而不是您的网站: 加载一个无法被缓存的随机路径,例如 yourdomain.com/anything-random-here。不要使用 ?cachebust=1:我们的边缘节点在决定从缓存中提供什么内容时会忽略查询字符串,所以它返回的是缓存副本,什么也证明不了。如果随机路径表现出新的行为而您的真实页面没有,那您看到的就是缓存。在浏览器开发者工具中,响应头 cdn-cache 会显示 HIT、MISS 或 BYPASS,直接回答了同一个问题。
该怎么做: 清除缓存。请参阅 清除 CDN 缓存。同时清除所有缓存插件和站点缓存,然后在隐私窗口中检查,以免被您自己的浏览器缓存误导。站点缓存 按顺序介绍了各层缓存。
带宽不是原因。我们的 CDN 带宽对您是不限量的:超出预期用量永远不会让您的网站暂停,永远不会把您的主机名从边缘节点移除,也永远不会悄悄把您切换到更慢的路径。如果您的网站慢或内容过时,请查看缓存和网站本身,而不是您用了多少流量。
仍然无法解决时要发给支持团队的内容
如果您已经按上述步骤排查过,仍然无法确定故障所在,一条写得好的消息能省去一整天的来回沟通。请包含:
- 您正在加载的确切地址,带上
https://,并与您输入的一样注明是否带www。 - 确切的错误,以文本形式复制,而不是描述它。如果是一行以
{"error":开头的文本,请原样发送那一行,因为它指明了原因。 - 您落在了上面哪个分支,以及控制面板页面上显示了什么。
- 是否在移动数据和 Wi-Fi 下都失败,以及是否对其他人也失败。
- 问题何时开始,以及那段时间前后有什么变化。
请发邮件至 support@kapsulehost.com,或在 KPanel 的 支持 中提交工单。请参阅 提交支持工单。