title: NGINX: upstream timed out (110: Connection timed out) while reading response header from upstream
body: <p>I have Puma running as the upstream app server and Riak as my background db cluster. When I send a request that map-reduces a chunk of data for about 25K users and returns it from Riak to the app, I get an error in the Nginx log:</p>
  
  <blockquote>
    <p>upstream timed out (110: Connection timed out) while reading
    response header from upstream</p>
  </blockquote>
  
  <p>If I query my upstream directly without nginx proxy, with the same request, I get the required data. </p>
  
  <p>The Nginx timeout occurs once the proxy is put in. </p>
  
  <pre><code>**nginx.conf**
  
  http {
      keepalive_timeout 10m;
      proxy_connect_timeout  600s;
      proxy_send_timeout  600s;
      proxy_read_timeout  600s;
      fastcgi_send_timeout 600s;
      fastcgi_read_timeout 600s;
      include /etc/nginx/sites-enabled/*.conf;
  }
  
  **virtual host conf**
  
  upstream ss_api {
    server 127.0.0.1:3000 max_fails=0  fail_timeout=600;
  }
  
  server {
    listen 81;
    server_name xxxxx.com; # change to match your URL
  
    location / {
      # match the name of upstream directive which is defined above
      proxy_pass http://ss_api; 
      proxy_set_header  Host $http_host;
      proxy_set_header  X-Real-IP  $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_cache cloud;
      proxy_cache_valid  200 302  60m;
      proxy_cache_valid  404      1m;
      proxy_cache_bypass $http_authorization;
      proxy_cache_bypass http://ss_api/account/;
      add_header X-Cache-Status $upstream_cache_status;
    }
  }
  </code></pre>
  
  <p>Nginx has a bunch of timeout directives. I don't know if I'm missing something important. Any help would be highly appreciated....</p>