nginx 代理 IIS 返回 504 Gateway Time-out


今天研发部的同事找到我。说他们的网站在用域名访问的时候导出文件出现504错误:

nginx 504 Gateway Time-out

然而用IP地址访问的时候正常。让我帮忙看看是不是nginx配置的问题。

了解了一下他们的应用场景。导出文件功能首先会在后台根据各种数据生成一个文件,这个文件可能好几十兆。然后才会进入下载流程。重现他们问题的时候发现,域名访问的时候,最多一分钟后没响应就返回504 gateway time-out了。所以,估计是nginx在读请求时超时。

网上各种百度,试过在nginx里面加如下配置:

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 256M;
    fastcgi_buffers 8 256M;#8 128
    fastcgi_busy_buffers_size 512M;
    fastcgi_temp_file_write_size 512M;

测试无效,跟fastcgi没关系。

接着在location里面添加proxy设置。访问没有出现超时。问题解决。

     proxy_connect_timeout 300s;
     proxy_send_timeout 300s;  #这个配置是问题的关键
     proxy_read_timeout 300s;

这个问题主要是nginx读请求超时造成的。

你可能感兴趣的:(nginx 代理 IIS 返回 504 Gateway Time-out)