我花了一整天的时间试图找出这个错误。
我们有一个 PHP 脚本,用于生成要下载的文件。升级 nginx(1.16 -> 1.24)后,此脚本突然开始随机失败,无法下载某些文件。
nginx 日志中的错误是:“读取上游时上游过早关闭了 FastCGI 请求”。
其他都没什么问题,也没有记录其他内容。我没有找到有关此类错误的相关报告。
答案1
最后,我发现这是由于 Content-Length 标头与生成文件的实际大小不匹配造成的。我们发送的 Content-Length 标头大小比文件的实际大小大 1 个字节。在这些情况下,nginx 似乎会随机失败并显示上述错误消息,等待丢失的字节。
因此,如果您遇到此错误,请检查您的 Content-Length 是否正确。