epoll_wait() reported that client prematurely closed connection, so upstream connection is closed to

今天真的是遇到一个糟心的问题。折腾了一晚上。

如果你在研究niginx 的时候也报这个问题,希望这个帖子能终结你的问题


首先,在启动nginx 后,一直映射不到后台,然后一直等待,直到1分钟,然后报了:连接超时

我就一直定位,是不是 location 的配置不到位,在设置pass_proxy 的时候,要不要加 “/”。纠结了很多次。

主要的方向是nginx.conf 的配置是不是有问题

后来突然想到,可以设置nginx 的 error.log 的日志级别。

所以做了修改,将notice 改为debug

error_log  logs/error.log  debug;

这个时候看到error.log 的详细日志了

*167 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while connecting to upstream, client: 183.159.182.255, server: community.dam.com, request: "POST /auth/getIdentityCode HTTP/1.1", upstream: "http://41.91.165.154:8081/auth/getIdentityCode", host: "community.dam.com", referrer: "http://community.dam.com/login"

然后对上述提示,一通搜索

客户端过早的关闭连接,在连接到上游的时候,上游也关闭了连接

得到的答案无非就是各种超时的解释,需要设置超时时间,但是我看了我的nginx ,和zuul 都已经配置了超时时间,没问题。

还照着修改了各种时间,但是没啥用,还是不行。平台最后还是报

最后,突然看到一篇文章https://blog.csdn.net/qzmrock/article/details/52634714

说是请求在处理完后响应的时候,有可能是被拦截掉了,立马想到是不是端口没有开,但是都开了,我本地用postman 直接请求都是没问题的。

但是因为是用的阿里云的服务器,有配置请求规则,比如我这里是8081端口,本身是需要对服务器自身开放。(不知道这个服务器当时设备时候为啥没有默认开放,可能默认开放了其他端口,但是不包含8081)。然后给服务器ip 访问8081端口添加白名单,问题解决。

猜你喜欢

转载自blog.csdn.net/u014209205/article/details/84800454