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读请求超时造成的。

推荐阅读更多精彩内容

  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 7,940评论 5 123
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 29,192评论 23 986
  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 2,683评论 0 28
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 104,922评论 12 126
  • 文 | 花心猪小槐 人生大多数事情都很无奈,明明你已经胖成猪了,回到家,你妈妈还说,看你瘦的,硬往你嘴里塞个肉包。...
    闵小小小小溪阅读 91评论 2 2