我有一个请求操作,耗时很长,需要从另外一台服务器下载一个文件回来。所以会使请求超时。我的tomcat前面有nginx,请问怎么在nginx和tomcat配置这个请求超时时间来保证我的请求正确返回?
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要设置永不超时?
顺便吐槽一下你这么长时间的操作功能设计要就要换一种方式来处,比如点击按钮后提交任务,后台执行,完成后前台查看
多大的文件,如果时间花在文件传输上,先压缩,还有nginx和tomcat不在同一个网?60秒都不够传输的?那就要看看网络是不是问题了。
可能文件是现生成的,考虑改进应用,加快速度。
如果文件是静态的,可预先传输过来。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。