【问题标题】:nginx proxy_read_timeout behaviournginx proxy_read_timeout 行为
【发布时间】:2022-01-24 01:36:55
【问题描述】:

我正在通过 rest api 将文档作为 MultipartFile 上传上传。应用服务器前面有一个nginx反向代理,proxy_read_timeout为60s

但是一个占用 2m 7s 的请求成功了。除了响应时间超过 60 秒的任何请求超时之外,我不应该基于 proxy_read_timeout 吗?

【问题讨论】:

    标签: java spring-boot http nginx postman


    【解决方案1】:

    仔细阅读docs

    仅在两次连续读取操作之间设置超时,而不是为整个响应的传输设置。如果代理服务器在这段时间内没有传输任何内容,则连接关闭。

    因此,对于从上游接收到的数据包的任何确认都会重置proxy_read_timeout 计时器。

    【讨论】:

    • 能否请您解释一下 proxy_read_timeout 是如何重置的?
    • 每个已建立的 TCP 连接都有一个 窗口大小(有关详细信息,请参阅 TCP flow controlTCP window scale option 文章)。在每个长度由 TCP 窗口大小确定的数据部分之后,接收方应发送一个 ACK​​ 数据包(确认)。从您的 Java 后端接收到该 ACK 数据包会使 proxy_read_timeout 计时器重置。
    猜你喜欢
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2012-09-28
    • 2010-10-06
    • 2018-09-09
    • 2011-10-26
    相关资源
    最近更新 更多