此问题发生在 Nginx 和 PHP-FPM 提供的纯 PHP 文件上。我在使用 Symfony 开发网站时偶然发现了这个问题,但有问题的内容长度范围是 3702-15965 (我想知道为什么它与普通 PHP 不同)。到目前为止我尝试过的:超时持续时间为 15 秒,但我尝试将其增加到 300 秒,但仍然超时。所以我猜这是无限循环的事情。它看起来与资源无关,因为即使内容长度为 500 万个字符它也能工作。使用不同的字符创建了各种测试,看看是否可以更改有问题的内容长度范围。答案是否定的,我所有的测试范围都保持不变。我尝试过禁用 gzip。它没有改变长度范围,但响应发生了变化。Gzip 启用响应:“上游请求超时” | Gzip 禁用响应:完全空白笔记:我的本地主机上不存在此问题。很少能正常打开页面。我无法一致地重现这一点。除了“请求超时”行之外,Nginx、PHP 或 GCR 日志中没有任何错误。任何帮助表示赞赏。谢谢。
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
有趣的是,我在写问题时已经解决了这个问题。添加fastcgi_buffering off;
到 Nginx 配置修复了该问题。
但我仍然不明白问题是什么以及为什么禁用缓冲可以修复它。因此,如果有人可以解释它,我不介意将该答案标记为解决方案。
慕侠2389804
TA贡献1719条经验 获得超6个赞
这是特定于 Nginx 而不是 Cloud Run 的。
当 Nginx 开始接收来自 FastGCI 后端的响应时,它将在内存中缓冲标头响应。如果响应对于内存来说太大,则可以将其中一部分保存到磁盘上的临时文件中,该临时文件由其他变量控制。
通过禁用 fastcgi_buffering,响应将在接收时同步传递到客户端。
- 2 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消