Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse proxy Too much Tcp Connection issue #1909

Open
linking12 opened this issue Jan 15, 2024 · 3 comments
Open

Reverse proxy Too much Tcp Connection issue #1909

linking12 opened this issue Jan 15, 2024 · 3 comments
Assignees

Comments

@linking12
Copy link

linking12 commented Jan 15, 2024

Question

背景:
由于在极端流量并且不能预估流量情况下,如果后端接口的延时是变慢时,在这种情况下nginx与后端服务走http1.1协议,为了把所有的request灌入到后端,会开启大量的Tcp连接;

1: 如果是client ->http1.1->nginx->http3->backend, 目前是支持的么?
https://wbsrv.ru/angie-pro/docs/en/#index-features

2: https://wbsrv.ru/angie-pro/docs/en/http_upstream/#u-queue 这种入队的功能有可能实现吗?

@linking12 linking12 changed the title Reverse proxy Too much Tcp Connection Reverse proxy Too much Tcp Connection issue Jan 15, 2024
@lianglli
Copy link
Member

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。

  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。

@lhanjian
Copy link
Collaborator

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。
  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。

现在是否有h2 upstream可以开源出来了?

@linking12
Copy link
Author

linking12 commented Jan 23, 2024

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。
  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。
    @lianglli 多谢回复,关于2的话,我有一个场景困扰很久;

对于nginx来说反向代理走http1.1协议,在突增流量的情况下,如果backend的接口响应变慢了,nginx会大量开启新的TCP连接到backend,这个并不是预期的,所以走h2/h3的连接复用或者通过queue缓存一部分request应该是比较好的选择,或者面对突增流量,下游接口变慢有更好的解决方案吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants