Nginx (104: Connection reset by peer )while reading upstream错误解决
程序员文章站
2022-07-12 19:18:23
...
报错分析:
1、浏览器访问请求出现错误:
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200
看请求,发现,请求通了,但是返回response没有结果,导致错误
问题分析:
a、网上说谷歌广告插件拦截,看了下自己浏览器,没有安装对应的插件(排除)
b、自己配置的nginx有问题,因此,查看服务器nginx日志
2、查看nginx错误日志:
发现日志确实报错了。报错信息如下:
#日志打印信息
2020/04/29 10:59:18 [error] 6172#0: *607 readv() failed (104: Connection reset by peer) while reading upstream, client: 61.144.100.66, server: zhuangwj.com, request: "GET /api/user/updateLoginSend?smsType=1&phoneNo=123 HTTP/1.1", upstream: "http://122.192.9.122:20021/api/user/updateLoginSend?smsType=1&phoneNo=123", host: "www.zhuangwj.com", referrer: "https://www.zhuangwj.com/"
看日志信息,是连接中断了,因此我们需要把长连接打开即可
当使用nginx作为反向代理时,为了支持长连接,需要做到两点:
从client到nginx的连接是长连接,对于客户端来说,nginx长连接是默认开启的。
从nginx到server的连接是长连接,需要自己开启
在反向代理的模块下,添加下面的参数:
location ~ / {
。。。。。。。。。省略。。。。。。。。。。。。。
proxy_connect_timeout 120; //加大120
proxy_send_timeout 120; //加大120
proxy_read_timeout 120; //加大120
proxy_http_version 1.1; //开启后端,长连接
proxy_set_header Connection ""; //开启后端,长连接
}
注意:keepalive指定的数值是Nginx每个worker连接后端的最大长连接数,而不是整个Nginx的.
参考文章:
http://blog.51yip.com/apachenginx/2203.html
万分感谢