我正在运行Django,FastCGI和Nginx.我正在创建一种各种各样的api,有人可以通过XML发送一些我将处理的数据,然后为每个发送过的节点返回一些状态代码.
问题是如果我花费太长时间来处理XML,Nginx会抛出504网关超时 - 我认为超过60秒.
所以我想设置Nginx,以便任何匹配location/api的请求不会超时120秒.什么设置将实现这一目标.
到目前为止我所拥有的是:
# Handles all api calls location ^~ /api/ { proxy_read_timeout 120; proxy_connect_timeout 120; fastcgi_pass 127.0.0.1:8080; }
编辑:我有什么不工作:)
对于代理而言,代理超时很好,而不是FastCGI ...
影响FastCGI超时的指令是client_header_timeout
,client_body_timeout
和send_timeout
.
编辑:考虑到在nginx wiki上发现了什么,send_timeout指令负责设置响应的一般超时(这有点误导).对于FastCGI fastcgi_read_timeout
,会影响fastcgi进程响应超时.
HTH.
对于那些使用nginx与unicorn和rails的人来说,很可能超时在你的unicorn.rb
文件中
在unicorn.rb中放了一个大的超时
timeout 500
如果您仍然遇到问题,请尝试在nginx的上游使用fail_timeout = 0,看看这是否可以解决您的问题.这是出于调试目的,在生产环境中可能很危险.
upstream foo_server { server 127.0.0.1:3000 fail_timeout=0; }