记一次线上Nginx响应超时问题 2018-08-31 项目背景 线上有两个项目,分别为tomcat 项目A,以及一个SpringBoot项目B,项目A,使用Nginx代理转发。 问题描述 从A项目中上传一个30秒的视频,通过HTTP上传到B项目中使用FFmpeg对其进行一系列解析等动作,然后返回视频的CDN地址。 由于此操作过程一般会耗时5-6分钟,在本地和测试环境将http请求的超时时间sockettimeout设置为10分钟,可以正常使用。 但是在生成环境下却发现有时能上传成功,有时却不行。 解决 经过多次测试发现,每次上传失败的处理时长大概都是5分钟,由于HttpClient代码里面默认设置的是5分钟,所以一直导致我认为是修改的配置没有生效。最后修改源码,将超时时间默认值改成20分钟,发现还是在5分钟左右就报错。 这个时候就可以确定肯定是有其他地方有个5分钟设置超时时间导致的。然后跟运维的同事一起分析了下nginx配置,发现有个proxy_read_timeout=300s的设置,这个时候基本上就已经定位问题原因了。 为了确定问题先在没改配置的时候使用ip地址访问上传视频,最后正常处理。然后修改配置为10分钟,通过域名访问,结果跟预....