3
背景: Nginx 实现http长连接,代理后台server请求,在使用过程中,发现客户端建立一个http长连接,每秒发送300个http请求包,但nginx 本身对http 请求包是串行逐个处理(响应+ACK),导致连接堆积请求 问题: tengine 解决单个http长连接串行处理http request请求包问题吗
背景: Nginx 实现http长连接,代理后台server请求,在使用过程中,发现客户端建立一个http长连接,每秒发送300个http请求包,但nginx 本身对http 请求包是串行逐个处理(响应+ACK),导致连接堆积请求 问题: tengine 解决单个http长连接串行处理http request请求包问题吗
我也想知道这个问题的答案。坐等
这是http1协议规定的,长连接串行处理。 一个方法是开更多的长连接来提升处理效率。 更好的方法是使用http2协议,一个连接多路复用,并发处理。
才发现你又加了背景,不知道你说的每秒发送300个http请求是pipeline吗?还是正常的长连接请求?
是在建立tcp长连接后,每秒发送300个http request包
已经使用了pipeline
http1协议就是如此,串行顺序处理。http2就是解决类似问题而生的。 如果客户端是并发发送的, 你把tengine长连接关闭改成短连接看是否有提升?
客户端暂时无法调整请求模式,短链接需要客户端修改逻辑,我希望看看哪种修改能满足性能又能减少客户端逻辑调整
如果你配置tengine只支持短连接, 客户端是什么行为呢?
keepalive_timeout 0;
关注这个问题,线上经常碰见,目前已经是全站https+http/2 了, 还是碰见过几次,具体要在跟进了,没有复现