我正在运行 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_timeoutclient_body_timeoutsend_timeout

编辑 :考虑到在 nginx wiki 上发现的内容,send_timeout directive 负责设置响应的一般超时(这有点误导)。对于 FastCGI,有 fastcgi_read_timeout 影响 fastcgi process response timeout

哈。

关于configuration - 如何在 Nginx 上使用 FastCGI 防止网关超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/561946/

10-15 14:55