【问题标题】:Can't upload a file to nginx server with fetch无法使用 fetch 将文件上传到 nginx 服务器
【发布时间】:2022-02-18 22:31:46
【问题描述】:

我有一个用 Laravel 编写的应用程序,我可以在其中上传和提供一些文件。在我尝试上传大小为 124MB 的文件之前,它运行良好。获取请求引发:

ERR_QUIC_PROTOCOL_ERROR.QUIC_IETF_GQUIC_ERROR_MISSING

当我在 chrome://flags 上禁用 Experimental QUIC 协议时,获取请求失败

TypeError:获取失败

error.log 上没有任何内容,根据 access.log,POST 请求没有到达服务器。

服务器是nginx版本:nginx/1.18.0(Ubuntu)

相关的php设置如下。为我的本地 Xampp 配置配置了相同的设置,并且在本地上传工作正常。

max_execution_time=300
upload_max_filesize = 0
post_max_size = 0

【问题讨论】:

    标签: php laravel http nginx


    【解决方案1】:

    NGINX 有一个最大 POST 大小限制。将其更改为 client_max_body_size 256M; 或您在 serverlocation 配置中需要的任何内容:

    location /uploads {
       ...
       client_max_body_size 256M;
    }
    

    修改后别忘了重启服务。

    【讨论】:

    • 谢谢,但我忘了提到我已经将它设置为 0。无论如何,nginx 不是问题,Cloudflare 是。
    • 好的!很高兴你修好了。实际上,我们无法猜测您已经设置了它,也无法猜测您前面也有 Cloudflare。
    【解决方案2】:

    在尝试了几个小时后,fetch 请求最终返回了一个响应,并说明了错误的原因。罪魁祸首原来是 Cloudflare。 Cloudflare 在免费计划中最多允许上传 100MB。我禁用了子域的代理,为 ssl 安装了 certbot,现在一切正常。

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2013-07-09
      • 1970-01-01
      相关资源
      最近更新 更多