故障排除

KapsuleHost上的HTTP错误代码

What 403, 404, 500, 502, 503 and 504 actually mean on this platform, and the specific thing to do about each one.

什么是 403、404、500、502、503 和 504 错误代码,以及对各个错误代码的具体处理方法。

错误代码不是一个通用的故障消息。它告诉你堆栈的哪一层出现了问题,这大大缩小了原因的范围。502 和 504 对访客来说看起来相同,但原因和解决方法完全不同。

读取实际代码

在进行故障排除之前,请获取实际的数字。一个漂亮的错误页面可能显示一个内容,而服务器返回另一个内容。

在你的浏览器中,打开开发者工具,转到"网络"标签,重新加载页面,然后单击第一个请求。状态位于"Headers"面板的顶部。

从终端运行:

curl -sSI https://yourdomain.com/

这会打印状态行和响应标头,而不会下载页面。标头很重要:以下几种情况中的许多通过标头而不是仅通过代码来识别。

简短版本

代码含义问题所有者
401需要身份验证启用了密码保护
403故意拒绝安全规则阻止了请求
404未找到你的网站,通常是路由
500你的应用程序崩溃你的代码或插件
502网络服务器后面的服务器失败通常是你的应用程序
503故意现在不提供服务已暂停、已暂时停用或正在维护
504耗时过长你的代码中有某些东西运行缓慢

401 未授权

你会看到浏览器用户名和密码框,而不是页面。这意味着在网站或该路径上启用了基本密码保护。

网站中,选择该网站,然后选择高级,再选择密码保护来关闭它或获取凭证。请参阅密码保护

启用密码保护时,证书续期继续进行,因此这不会破坏你的 HTTPS。

403 禁止访问

403 表示某些内容故意拒绝了请求。在此平台上有四个不同的来源。

网络应用防火墙。 每个网站都位于一个检查传入请求并阻止与已知攻击模式匹配的规则引擎后面。这是意外 403 最常见的来源,在合法但不寻常的请求上几乎总是误报:长表单提交、页面生成器保存复杂内容、插件发布原始代码。

防火墙阻止的症状:一个特定的操作每次都以 403 失败,而网站的其余部分运行正常,并且在不同的浏览器和不同的网络上失败方式相同。

解决方法是有针对性的规则排除,支持可以添加。不要去寻找关闭防火墙的开关;对于共享主机没有这样的开关,无论如何这都不是正确的解决方法。提交工单时请提供确切的 URL、确切的时间以及你当时在做什么。请参阅提交支持工单

地理位置限制。 如果你已将你的网站限制在特定国家/地区,其他地方的每个人都会收到 403。检查高级,然后检查安全。请参阅地理位置限制

IP 地址块。 要么是你在"安全"下自己添加的,要么是平台级滥用块。

文件权限或符号链接问题。 不太常见,通常在通过 SSH 进行手动文件操作后出现。

404 未找到

服务器已应答,但该地址处没有任何内容。

一个页面 404。 该文件或帖子确实不存在,或 URL 错误。

除主页外的每个页面都是 404。 这是一个路由问题,在 WordPress 上几乎总是固定链接问题。重要信息:Kapsule 网络托管运行 nginx,而不是 Apache,所以 .htaccess 重写规则在此处无效。如果你从使用它们的主机迁移,那就是你的原因。请参阅固定链接问题WordPress 和 .htaccess

整个网站都是 404。 检查网站是否指向正确的文档根目录,以及你的域名是否附加到正确的网站。请参阅网站的自定义域名

它在你的计算机上运行正常,但实时时显示 404。 Linux 文件名区分大小写。Logo.PNGlogo.png 是两个不同的文件。

500 内部服务器错误

你的应用程序运行并崩溃。网络服务器没有问题;代码有问题。

这是日志几乎可以立即给出答案的一种情况,因为 PHP 致命错误会记录失败的文件和行号,这通常会指出确切的插件。

  1. 转到网站,选择该网站,高级,然后日志
  2. 查看最新的条目。
  3. 将时间戳与你看到错误的时间匹配。

请参阅错误日志。对于 WordPress 特定版本(页面显示为空白而不是显示错误),请参阅 WordPress 白屏

最常见的原因是插件或主题与你的 PHP 版本不兼容、达到内存限制以及数据库连接失败。请参阅 PHP 扩展和设置WordPress 内存限制

502 网关错误

网络服务器试图将请求传递给你的应用程序,但没有得到有用的响应。应用程序进程拒绝连接或在请求中途崩溃。

常见原因:

  • PHP 进程崩溃,通常是因为在一个请求中耗尽内存。
  • Node.js 应用程序未运行,或在启动时崩溃。
  • 流量突增耗尽了可用的工作进程。

要做什么:首先检查日志,如上所述。如果是 Node 应用程序,请检查进程是否确实启动,并查看其启动输出。如果 502 仅在你的最繁忙时间出现,这是容量问题而不是错误。请参阅网站速度缓慢和资源限制

来自 KPanel 本身的 502,在保存设置时,意味着不同的东西。这意味着面板无法将配置更改应用到网络服务器,因此它回滚了更改,而不是让你的网站处于半配置状态。你的网站不受影响。重试,如果继续失败,请提交工单。

503 服务不可用

503 表示服务器故意现在不提供服务。此平台上有三个具体原因,响应会告诉你是哪一个。

你的网站已暂停。 你会看到标题为"此网站已暂停"的页面。这是账户状态问题,不是技术故障,当状态清除时,网站会立即恢复。检查账单。请参阅付款失败账户已暂停

一个 Orbit 项目达到了其支出上限。 响应包含标头 X-Orbit-Paused: spending-cap,页面显示网站已达到其每月支出上限。这个令人困惑,因为没有破坏任何东西,也不需要支持工单。该项目故意停止提供服务,以便你不会获得意外的账单。

恢复:转到 Orbit,选择该项目,设置,然后支出上限,并提高上限。选择更改后,提供服务会恢复,最多可能需要一小时。它也会在下一个账单周期开始时自动恢复。请参阅 Orbit 支出上限

平台维护。 一个整个平台的维护页面,这很少见并有事先公布。检查状态和运行时间

504 网关超时

当网络服务器耗尽耐心时,你的应用程序仍在工作。没有任何内容崩溃。只是太慢了。

典型的原因:

  • 通过浏览器运行的长时间导入、导出、备份或批量操作。
  • 在每个页面加载时调用缓慢外部 API 的插件。
  • 没有索引支持的昂贵数据库查询。
  • 由页面视图而不是实际 cron 触发的 cron 任务。

要做什么:

  1. 确定哪个请求很慢。WordPress 网站上的 APM 标签会显示。请参阅网站性能
  2. 对于长时间操作,请使用命令行而不是浏览器。请参阅 WP-CLI
  3. 将计划的工作移至真正的 cron。请参阅 Cron 作业
  4. 提高 max_execution_time,如果工作确实需要更长时间,尽管这是一个变通办法而不是修复。请参阅 PHP 扩展和设置

注意区别:如果 PHP 首先达到其自身的执行限制,你会得到 500,而不是 504。两者都表示"太慢",在不同的层面。

根本没有响应

有时没有错误代码,因为没有响应。连接就是挂起,最终超时。

如果从一个网络发生这种情况,但网站在另一个网络上运行正常,尤其是从手机流量网络,最可能的原因是自动滥用块:来自你的地址的一连串错误或失败的登录尝试触发了临时网络级禁令。这些通常会在一小时内自行清除。如果你需要更快地解除,请与支持部门联系你的 IP 地址。

自定义错误页面

你可以在网站下、该网站、高级、然后错误页面中,将 400、401、403、404、500、502、503 和 504 的默认错误页面替换为你自己的 HTML。如果你没有提供,Kapsule 为 404、500、502、503 和 504 提供品牌默认值。

值得了解的一件事:自定义错误页面保留实际的状态代码。自定义 404 仍然返回 404。以 200 状态提供错误页面是破坏搜索排名的一种经典方法,这在此处被故意禁止。请参阅自定义错误页面

相关指南

仍需帮助?

请发送邮件至 support@kapsulehost.com 或在 KPanel 中打开聊天。

打开 KPanel
KapsuleHost上的HTTP错误代码