如何增加上游uWSGI服务器的nginx超时?

时间:2016-05-31 12:44:50

标签: nginx uwsgi

使用的堆栈:

Nginx - > Uwsgi(代理通过) - > Django的

我有一个API,大约需要80秒才能执行查询。 Nginx在60秒后关闭与上游服务器的连接。这可以在nginx错误日志中找到:

upstream prematurely closed connection while reading response header from upstream

uWSGI和django应用程序日志没有显示任何奇怪的内容。

这是我的nginx配置:

server {
   listen 80;
   server_name xxxx;
   client_max_body_size 10M;

   location / {
       include         uwsgi_params;
    proxy_pass http://127.0.0.1:8000;
    proxy_connect_timeout 10m;
    proxy_send_timeout   10m;
     proxy_read_timeout   10m;
     proxy_buffer_size    64k;
     proxy_buffers     16 32k;
     proxy_busy_buffers_size 64k;
     proxy_temp_file_write_size 64k;
     proxy_pass_header Set-Cookie;
     proxy_redirect     off;
     proxy_hide_header  Vary;
    proxy_set_header   Accept-Encoding '';
     proxy_ignore_headers Cache-Control Expires;
     proxy_set_header   Referer $http_referer;
     proxy_set_header   Host   $host;
     proxy_set_header   Cookie $http_cookie;
     proxy_set_header   X-Real-IP  $remote_addr;
     proxy_set_header X-Forwarded-Host $host;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

如何增加超时,我已尝试设置proxy_pass超时变量,但它们似乎没有工作。

1 个答案:

答案 0 :(得分:1)

好的,通过将proxy_pass替换为uwsgi_pass

,设法解决了这个问题

这就是我的nginx conf现在的样子:

server {
    listen 80;
    server_name xxxxx;
    client_max_body_size 4G;

    location /static/ {
         alias  /home/rmn/workspace/mf-analytics/public/;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi_web.sock;
        uwsgi_read_timeout 600;
    }
}

我必须在我的uwsgi ini文件中设置socket参数。

出于某种原因,proxy_pass超时不会生效。