Issue with nginx (readv() failed (104: Connection reset by peer) while reading upstream) #95

问题现象:正常使用过程中(不清楚是否运维进行了操作),突然API不能访问了,客户端错误如下:

    java.io.IOException: unexpected end of stream on okhttp3.Address@178de5cc!

查看NGINX的错误日志发现大量的错误日志:

    [error] 9932#0: *10366 readv() failed (104: Connection reset by peer) while reading upstream  ....

第一感觉是后端upstream集群出现故障,但是经过测试没有发现问题,直接使用curl也能正常访问。问题发生的莫名其妙。

通过查找搜索发现:默认http_version是1.0,http1.0对keepalive是不支持的,所以导致了此问题。

反向代理配置这里不展开,参考2中重点提到一句:

      Be extra sure to include proxy_http_version 1.1 or the web socket connection will fail.

对比自己的NGINX配置,确实少了此配置项。


对任何东西没有十足的把握都是有风险的。


参考:

    1. [官网] http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

    2. https://discourse.octoprint.org/t/reverse-proxy-configuration-examples/1107

    3. https://www.jianshu.com/p/dea2ffb1c3b1

你可能感兴趣的:(Issue with nginx (readv() failed (104: Connection reset by peer) while reading upstream) #95)