Nginx (104: Connection reset by peer )while reading upstream错误解决

报错分析:

1、浏览器访问请求出现错误:

net::ERR_INCOMPLETE_CHUNKED_ENCODING 200

看请求,发现,请求通了,但是返回response没有结果,导致错误

问题分析:

    a、网上说谷歌广告插件拦截,看了下自己浏览器,没有安装对应的插件(排除)

    b、自己配置的nginx有问题,因此,查看服务器nginx日志

Nginx (104: Connection reset by peer )while reading upstream错误解决_第1张图片

Nginx (104: Connection reset by peer )while reading upstream错误解决_第2张图片

 

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

万分感谢

你可能感兴趣的:(Nginx (104: Connection reset by peer )while reading upstream错误解决)