← AI 百科

500 Internal Server Error

报错库 · 报错 / 部署 / 运维
一句话:服务器在处理请求过程中自己出了错,是最常见但也最模糊的服务端错误,具体原因需要看服务器日志才能确定。

它是什么

500错误表示服务器确实收到了请求,也开始处理了,但处理过程中代码报错/崩溃了,没能正常返回结果。这个错误码本身信息很少,真正的原因藏在服务器的日志里(可能是代码bug、数据库操作失败、依赖的第三方服务出错等各种原因)。

适合干什么

  • 页面/接口报500错误需要定位根本原因
  • 上线新功能后突然出现的服务端报错

不适合干什么

  • 前端页面本身的报错(那是浏览器控制台的JS错误,不是服务端的500)

普通人怎么用

第一步永远是去看服务器日志,日志里通常会有完整的报错堆栈信息,指出是哪一行代码、什么原因导致的报错,比单纯看到"500错误"这四个字有用得多。

进阶用户怎么用

生产环境建议接入错误监控工具(如Sentry),能自动收集报错详情并通知,不用每次都手动登录服务器翻日志;给关键业务逻辑加好异常捕获和友好的错误提示,避免未捕获的异常直接导致用户看到冷冰冰的500页面。

常见误区

  • 只看到500状态码就开始瞎猜原因,实际上应该第一时间去查日志获取具体的报错堆栈
  • 本地测试没问题就以为万无一失,忽略了生产环境的数据、配置、依赖版本可能和本地不同,导致本地复现不了但生产报错

和相似工具的区别

  • 和502的区别:500是后端服务自己在处理过程中出错,502是反向代理没收到后端的有效响应,两者发生的位置不同,排查方向也不同

入门步骤

  • 查看服务器/应用日志获取详细报错信息
  • 定位到具体是哪段代码/哪个操作导致的
  • 本地复现问题并修复