You need to enable JavaScript to run this app. 部署在AWS的Laravel应用持续上报NotFoundHttpException如何解决
优惠活动
大模型
产品
解决方案
定价
更多

部署在AWS的Laravel应用持续上报NotFoundHttpException如何解决

Laravel AWS部署频繁触发NotFoundHttpException错误解决方案

第一步:定位具体请求信息

当前报错仅返回404异常栈,未携带请求上下文,首先需要补全日志定位请求来源:

  • 打开项目app/Exceptions/Handler.php文件,在register方法中添加404异常的日志捕获逻辑:
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

public function register()
{
    $this->reportable(function (NotFoundHttpException $e) {
        \Log::error('404请求详情', [
            'path' => request()->path(),
            'method' => request()->method(),
            'ip' => request()->ip(),
            'user_agent' => request()->userAgent(),
            'headers' => request()->headers->all()
        ]);
    });
}
  • 部署修改后等待1-2分钟,查看AWS CloudWatch日志或服务器本地storage/logs下的日志文件,即可获取触发异常的请求路径、请求方法、来源IP等信息。

常见对应解决方案(适配AWS部署场景)

  • 原因1:AWS负载均衡健康检查触发

AWS ALB/NLB默认会定期发送健康检查请求,默认路径为/,如果应用根路径未配置路由,就会持续触发404。
解决步骤:

  1. 在路由文件中添加健康检查专用路由:
Route::get('/health', function () {
    return response()->json(['status' => 'ok'], 200);
});
  1. 进入AWS负载均衡控制台,将健康检查路径修改为/health,同时可以在异常上报规则中过滤该路径的404异常,避免推送Slack。
  • 原因2:公网爬虫/端口扫描触发

公网环境下会有大量自动化爬虫扫描/.env、/phpmyadmin、/wp-admin等默认敏感路径,这类请求不属于业务请求,会频繁触发404。
解决步骤:

  1. 修改异常上报规则,仅上报业务前缀路径下的404异常,比如你的API接口都在/api前缀下,可添加如下逻辑:
public function report(Exception $e)
{
    if ($e instanceof NotFoundHttpException && !str_starts_with(request()->path(), 'api/')) {
        return;
    }
    parent::report($e);
}
  1. 配置AWS WAF规则,直接拦截常见扫描路径的请求,从源头减少无效流量。
  • 原因3:前端history模式路由触发

如果Vue项目使用history路由模式,且前后端部署在同一域名下,用户刷新页面时请求会发送到Laravel端,无对应路由就会触发404。
解决步骤:
在路由文件最底部添加兜底路由,所有非API路径请求返回前端入口文件:

Route::get('/{any}', function () {
    return view('index');
})->where('any', '.*');

注意该路由必须放在所有业务路由的最后,避免覆盖正常接口。

临时应急方案

如果需要快速停止Slack告警刷屏,可先在日志上报规则中直接屏蔽Symfony\Component\HttpKernel\Exception\NotFoundHttpException类型的异常,等定位到具体原因后再调整过滤规则。

内容的提问来源于stack exchange,提问作者rabie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 03:12:01