我正在运行 Django、FastCGI 和 Nginx。我正在创建一个 api,有人可以通过 XML 发送一些数据,我将处理这些数据,然后为发送的每个节点返回一些状态代码。
问题是如果我处理 XML 的时间太长,Nginx 会抛出 504 网关超时——我认为超过 60 秒。
所以我想设置 Nginx,以便如果任何与位置/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 directive 负责设置响应的一般超时(这有点误导)。对于 FastCGI,有 fastcgi_read_timeout
影响 fastcgi process response timeout 。
哈。
关于configuration - 如何在 Nginx 上使用 FastCGI 防止网关超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/561946/