You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置API请求遇404问题排查求助(Laravel+Docker环境)

排查 Laravel + Nginx + Docker 下 POST /api/project 404 问题

从几个核心方向逐一排查:

1. 确认 Nginx 配置是否正确转发请求到 Laravel

Laravel 依赖 Nginx 将所有非静态资源请求转发到 index.php,你的配置必须包含正确的 try_files 规则。标准配置片段参考:

server {
    listen 80;
    root /var/www/html/public; # 必须指向 Laravel 项目的 public 目录
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string; # 关键:所有路由请求交给 Laravel 处理
    }

    location ~ \.php$ {
        fastcgi_pass php-fpm:9000; # 注意:这里是 Docker 中 PHP-FPM 服务的名称,不是 127.0.0.1
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重点核对项:

  • root 路径是否准确指向 Laravel 的 public 目录,这是高频出错点
  • try_files 末尾是否包含 /index.php?$query_string,缺失的话 Nginx 会直接返回404,不会交给 Laravel 处理
  • fastcgi_pass 的地址是否与 docker-compose.yml 中 PHP 服务的名称一致(比如 PHP 服务叫 php,就写 php:9000,容器内无法用 127.0.0.1 访问其他容器)

2. 验证 Laravel 路由是否存在

进入 PHP-FPM 容器,执行命令:

php artisan route:list

仔细查找是否有 POST /api/project 这条路由,注意:

  • 路由是否定义在 routes/api.php 中?框架默认会给该文件内的路由加上 api 前缀
  • 有没有拼写错误?比如把 project 写成 projects
  • 是否被中间件拦截?比如 auth 中间件通常返回401而非404,但可以暂时注释中间件做测试

3. 检查 Docker 网络连通性

  • 确认 Nginx 和 PHP-FPM 容器处于同一个 Docker 网络(docker-compose 默认会创建专属网络,手动创建的容器需额外检查)
  • 在 Nginx 容器内执行 ping php-fpm(替换为你的 PHP 服务名),如果 ping 不通说明网络异常,请求根本无法到达 PHP 服务

4. 通过日志定位具体错误

  • Nginx 错误日志:一般路径为 /var/log/nginx/error.log,查看是否有「File not found」或「connection refused」类错误,前者对应路径配置错误,后者对应 PHP-FPM 连接失败
  • Laravel 日志:项目路径下的 storage/logs/laravel.log,如果请求到达 Laravel,日志会记录路由匹配失败信息;如果日志为空,可能是 storage 目录权限不足,执行以下命令修复:
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

5. 检查请求本身

  • Postman 中确认请求方法为 POST,路径是 /api/project,无多余或缺失字符
  • Axios 请求需确认实际请求地址正确,跨域问题通常返回403而非404,但也可同步检查请求头的 Content-Type 是否为 application/json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:45:59