发布网友 发布时间:2024-10-05 21:20
共1个回答
热心网友 时间:2024-10-05 23:24
出现Connection reset by peer有很多原因造成,我针对我这次遇到的问题的排查过程做个介绍。
解决过程首先看下错误,
错误的信息是Connection reset by peer,错误的类是catalina的ClientAbortException,google上搜到了这篇文章,问题指引导到了Nginx上来,我没有直接采取这篇文章的配置方式,先去看了nginx的日志文件
cd /varlog/nginxtail -f error.log点击页面,日志滚动了
其中红框的部分,继续用google搜索
看到一篇文章
去到nginx的目录/urs/local/nginx
看这用户用户组不一样,还真是权限问题? 试试改成nginx
chown -R nginx:nginx /usr/local/nginx/proxy-temp改完后,立刻接口就能正常返回了。
小结问题分析请求的链路: 浏览器->nginx->server
响应的链路: 浏览器<-nginx<-server
其中server是部署在servlet容器里的,我们用的servlet容器是springboot自带的tomcat。
请求从tomcat发往nginx时,响应包的大小大于nginx的代理文件大小,于是nginx将文件写入临时目录,而这个临时目录访问权限不够,导致写不进去,于是nginx把连接重置了,业务服务器收到connection reset by peer的异常。
问题原因当代理文件大小超过配置的proxy_temp_file_write_size值时,nginx会将文件写入到临时目录下(默认为/proxy_temp)。
如果nginx对/proxy_temp没有权限,就写不进去。
解决方式调整/proxy_temp权限为配置nginx的那个用户。
chown -R nginx:nginx /usr/local/nginx/proxy-temp扩展知识关于nginx proxy_temp目录存放临时响应缓冲的目录
淘宝tengine说明文档
配置nginx反向代理时,要注意的权限设置
nginx文件夹下的proxy_temp文件夹问题记录
关于proxy_temp_file_write_size配置Nginx代理缓冲区
proxy_temp_file_write_size
nginx中文文档
在开启缓冲后端服务器响应到临时文件的功能后,设置nginx每次写数据到临时文件的size(大小)限制。?size的默认值是proxy_buffer_size指令和proxy_buffers指令定义的每块缓冲区大小的两倍, 而临时文件最大容量由proxy_max_temp_file_size指令设置。
原文:https://juejin.cn/post/7097132469748498446