发送 http2 请求时,recv() 在 nginx 错误日志中失败
Posted
技术标签:
【中文标题】发送 http2 请求时,recv() 在 nginx 错误日志中失败【英文标题】:recv() failed in nginx error log when sending http2 request 【发布时间】:2021-11-23 07:56:34 【问题描述】:发送 grpc-go 请求时在 nginx error.log 中得到以下内容。
2021/10/01 17:06:08 [info] 18799#18799: *9 recv() 在处理 HTTP/2 连接时失败(104:对等方重置连接),客户端:127.0.0.1,服务器:0.0 .0.0:50050
奇怪的是,上述日志记录只发生某些次,并非总是发生。如果您以前遇到过此问题以及如何解决,请告诉我。
【问题讨论】:
【参考方案1】:Go http.Get, concurrency, and "Connection reset by peer" 的可能重复项
此连接重置的一个可能原因是连接过多,nginx 无法处理
您可以尝试通过在 nginx 全局或虚拟主机配置中添加事件块来增加 nginx 连接限制。然后重启nginx。
events
worker_connections 2048;
同时尝试查看您的服务器当时是否运行缓慢。
来源:https://ubiq.co/tech-blog/how-to-fix-nginx-worker-connections-are-not-enough/
【讨论】:
以上是关于发送 http2 请求时,recv() 在 nginx 错误日志中失败的主要内容,如果未能解决你的问题,请参考以下文章
Okhttp3、http2多路复用POST请求高峰负载时响应时间长