Nginx超时设置

我用Nginx+Django+FastCGI跑一个服务,是要处理一个巨大的XML,犹豫文件太大,处理比较慢,爬到一半就超时了。
我改了Nginx的配置,原来是60,改到120,但貌似没效果,还是60s超时。

location ^~ /api/ {
    proxy_read_timeout 120;
    proxy_connect_timeout 120;
    fastcgi_pass 127.0.0.1:8080;
}

还有别的哪里要改吗?

阅读 21.2k
4 个回答

应该用:

fastcgi_read_timeout 600;
fastcgi_send_timeout 600;

这两个选项.
fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间
fastcgi_send_timeout是指nginx进程向fastcgi进程发送request的整个过程的超时时间

这两个选项默认都是秒(s),可以手动指定为分钟(m),小时(h)等.

对于这样花较长事件处理的页面最好改成异步处理,Nginx的连接时间好像不能超过75秒.

fastcgi_connect_timeout 75;
fastcgi_read_timeout 120;
fastcgi_send_timeout 120;

http://wiki.nginx.org/HttpFastcgiModu...

proxy是代理跟后端通信的时间,需要修改fastcgi超时时间

看看是504 还是 502

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题