【问题标题】:How to fix HTTP/2.0 504 Gateway Timeout for multi simultaneous XHR connections when using HTTP/2使用 HTTP/2 时如何修复多个同时 XHR 连接的 HTTP/2.0 504 网关超时
【发布时间】:2019-05-01 07:07:41
【问题描述】:

我在我的服务器上激活了 HTTP/2 支持。现在我遇到了上传或 Api 处理等 AJAX/jQuery scipts 的问题。

在 php 的 max_input_time 为 60 秒后,我得到:[HTTP/2.0 504 Gateway Timeout 60034ms]

对于 HTTP/1,只有少数几个连接同时启动,一个完成后另一个启动。 与 HTTP/2 一起开始。

例如,当上传 100 张图片时,所有图片都需要很长时间。

我不想更改 max_input_time。我希望限制脚本中的同时连接。

谢谢

【问题讨论】:

    标签: ajax xmlhttprequest http2 http-status-code-504


    【解决方案1】:

    HTTP/2 有意允许多个并行请求。这与 HTTP/1.1 不同,后者一次只允许一个请求(但浏览器通过打开 6 个并行连接来弥补)。大幅提高该限制的不利之处在于,您可以同时处理更多请求,从而争夺带宽。

    你基本上有两种选择来解决这个问题:

    1. 更改您的应用程序以限制上传,而不是期望浏览器或协议为您执行此操作。
    2. 限制您的网络服务器允许的最大并发流数。例如,在 Apache 中,这是由 H2MaxSessionStreams Directive 控制的,而在 Nginx 中,它同样由 http2_max_concurrent_streams config。其他流需要等待。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-03
      • 2019-09-09
      • 2013-09-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2023-02-22
      相关资源
      最近更新 更多