nginx 解决 readv() failed (104: Connection reset by peer)
查看nginx error错误,发现上传接口报以下错:
2019/10/10 19:58:25 [error] 299784#0: *5967188 readv() failed (104: Connection reset by peer) while reading upstream, client: 59.34.155.7, server: xxxxxxxx, request: "POST /stream/tracking/file HTTP/1.1", upstream: "http://xxxxxxxx/stream/tracking/file", host: "xxxxxxxx"
这种错误日志不多,第一感觉就是上传文件过大,传输时间过长,然后连接被中断。
当使用nginx作为反向代理时,为了支持长连接,需要做到两点:
从client到nginx的连接是长连接,对于客户端来说,nginx长连接是默认开启的。
从nginx到server的连接是长连接,需要自己开启
upstream bigdata {
server 10.0.20.xx:18018;
server 10.0.20.xx:18018;
server 10.0.20.xx:18018;
server 10.0.20.xx:18018;
keepalive 100; //根据qps来调整
}
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的.

相关推荐
-
DBA技术分享(一)-MYSQL常用查询Databases和tables
DBA技术分享(一)-MYSQL常用查询Databases和tables2025-04-27 02:23:34 -
SEO应用之PHP随机输出数组多个值2025-04-27 01:31:39
-
Hbase和MySQL的区别是什么?2025-04-27 01:13:13
-
PHP中异步执行http请求(Guzzle And Curl)
PHP中异步执行http请求(Guzzle And Curl)2025-04-27 00:21:51 -
| PHP 求2个日期相差天数,兼容性好错误率低,收藏了2025-04-27 00:15:34