开发者社区> 问答> 正文

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

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

展开
收起
kun坤 2020-06-14 08:03:50 1341 0
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-14 08:03:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载