在传输大文件时,需要增加其响应超时时间,因为后台服务还在进行数据处理,如果到了65s,nginx会把连接断开,抛出一个504超时异常显示在前台页面。这个时候我们需要改变其响应超时时间达到我们需要的效果。文件配置如下:
nginx.conf

http {
    #连接存活超时时间,默认为65s,如果下面需要修改,这个时候一定要与之相同或更大
    keepalive_timeout 10m;       
     #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_connect_timeout  600s;  
    #后端服务器数据回传时间(代理发送超时) 
    proxy_send_timeout  600s;  
    #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_read_timeout  600s;
    #指定nginx与后端fastcgi server连接超时时间
     fastcgi_connect_timeout 600s;
    #指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)
    fastcgi_send_timeout 600s;
    #指定nginx向后端传送响应超时时间(指已完成两次握手后向fastcgi传送响应超时时间)
    fastcgi_read_timeout 600s;
    include /etc/nginx/sites-enabled/*.conf;
}

尾话:问题虽然解决了,但实际开发是不建议这么做的,这样做消耗太多nginx的性能,因为一个连接超时时间越长,他所占连接的时间也越长,推荐使用任务管理的方式处理大文件跑数据的问题,以队列形式亦可。从其他方面解决,而不是选择nginx增加连接超时时间解决。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐