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