热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决nginx启动报错epoll_wait()reportedthatclientprematurelyclosedconnection的方法

本文介绍了解决nginx启动报错epoll_wait()reportedthatclientprematurelyclosedconnection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。

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

如果你在研究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端口添加白名单,问题解决。


推荐阅读
author-avatar
紫褚1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有