开发者社区 问答 正文

tomcat和nginx配置请求超时时间:配置报错 

我有一个请求操作,耗时很长,需要从另外一台服务器下载一个文件回来。所以会使请求超时。我的tomcat前面有nginx,请问怎么在nginx和tomcat配置这个请求超时时间来保证我的请求正确返回?

展开
收起
kun坤 2020-06-01 10:21:51 1026 分享 版权
1 条回答
写回答
取消 提交回答
  • Nginx代理默认请求超时时间还是挺久的,貌似60s,见:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout  难道你的操作在60s内无法结束吗?
     你要保证请求正确返回,就要保证业务操作在规定的时间内返回,那么nginx做相应的配置就可以了
    反之如果无法保证后端多久能返回,那不就扯淡吗?nginx要设置永不超时?

    顺便吐槽一下你这么长时间的操作功能设计要就要换一种方式来处,比如点击按钮后提交任务,后台执行,完成后前台查看 ###### 相信我,这种请求超时肯定是应用程序的响应慢导致的。跟 Nginx 一点关系都没有! ######

    引用来自“红薯”的评论

    相信我,这种请求超时肯定是应用程序的响应慢导致的。跟 Nginx 一点关系都没有!

    天啦,大神回我问题啦来人啦~~
    额,言归正传。我的业务是这样的,我点击一个按钮发起一个请求,这个请求的内容就是从远程服务器下载一个文件到本地来,然后调用一个shell,我debug的结果,时间就耗费在这个下载过程,所以想增大请求超时时间来保证在文件下载完成之前不超时。 ######

    引用来自“景愿”的评论

    Nginx代理默认请求超时时间还是挺久的,貌似60s,见: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout   难道你的操作在60s内无法结束吗?  你要保证请求正确返回,就要保证业务操作在规定的时间内返回,那么nginx做相应的配置就可以了 反之如果无法保证后端多久能返回,那不就扯淡吗?nginx要设置永不超时? 顺便吐槽一下你这么长时间的操作功能设计要就要换一种方式来处,比如点击按钮后提交任务,后台执行,完成后前台查看 一个公司内部使用的小系统,所以就都用阻塞式的~~######如果是反向代理,然后Google下这些参数吧 Nginx: proxy_connect_timeout      180; proxy_send_timeout         180; proxy_read_timeout         180; Tomcat: connectionTimeout="60000" ###### 多大的文件,如果时间花在文件传输上,先压缩,还有nginx和tomcat不在同一个网?60秒都不够传输的?那就要看看网络是不是问题了。 可能文件是现生成的,考虑改进应用,加快速度。 如果文件是静态的,可预先传输过来。
    2020-06-01 10:21:59
    赞同 展开评论