title: Passenger & Nginx => 502 Bad Gateway Errors in Production
body: <p>I am running Nginx 1.0.6, Passenger 3.0.9, Rails 3.1.1, Ruby 1.9. In my production environment I am seeing the following intermittent warnings in my nginx_error.log file:</p>
  
  <blockquote>
    <p>2011/11/22 14:44:40 [warn] 23288#0: *474 an upstream response is
    buffered to a temporary file /opt/nginx/proxy_temp/2/00/0000000002
    while reading upstream, client: 69.172.88.178, server:
    www.memverse.com, request: "GET /show_all_my_verses HTTP/1.1",
    upstream: "passenger:unix:/passenger_helper_server:", host:
    "www.memverse.com", referrer: "<a href="http://www.memverse.com/quick_add/7352" rel="nofollow">http://www.memverse.com/quick_add/7352</a>"</p>
  </blockquote>
  
  <p>and, less frequently, the following error which leads to a 502 Bad Gateway:</p>
  
  <blockquote>
    <p>2011/11/21 15:35:20 [error] 2118#0: *60762 upstream prematurely closed
    connection while reading response header from upstream, client:
    74.125.44.84, server: www.memverse.com, request: "GET /blogs/feed/9 HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host:
    "www.memverse.com"</p>
  </blockquote>
  
  <p>I have crawled through both the Passenger and the Nginx documentation and have tweaked almost every setting in my nginx.conf file but all to no avail. I'm hoping that someone can at least point me in the right direction.</p>
  
  <p>Below is my nginx.conf:</p>
  
  <pre><code>user  root;
  worker_processes  4;
  
  error_log  logs/error.log  error; # debug | info | notice | warn | error | crit
  pid        logs/nginx.pid;
  
  events {
      worker_connections  1024; # max_clients = worker_processes * worker_connections
  }
  
  
  http {
      include       mime.types;
      default_type  application/octet-stream;
  
      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
  
      access_log  logs/access.log  main;
  
      sendfile        on;
  
      keepalive_timeout  65;
  
      # Configure Passenger
      passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9;
      passenger_ruby /usr/local/bin/ruby;
  
      passenger_log_level 1;
      passenger_debug_log_file /home/avitus/logs/passenger.log;
  
      rails_framework_spawner_idle_time 0;
      rails_app_spawner_idle_time 0;
  
      passenger_pool_idle_time 0;
      passenger_use_global_queue on;
      passenger_max_pool_size 15;
  
      server {
         listen 80;
         server_name www.pariday.com pariday.com;
         root /home/avitus/pariday.com/current/public;
         access_log /home/avitus/pariday.com/current/log/nginx_access.log main;
         error_log /home/avitus/pariday.com/current/log/nginx_error.log info;
         passenger_enabled on;
      }
  
      server {
          listen 80;
          server_name www.assetcorrelation.com assetcorrelation.com;
          root /home/avitus/assetcorrelation.com/current/public;
          access_log /home/avitus/assetcorrelation.com/current/log/nginx_access.log main;
          error_log /home/avitus/assetcorrelation.com/current/log/nginx_error.log info;
          passenger_enabled on;
      }
  
      server {
           listen       80;
           server_name  localhost;
  
           location / {
               root   html;
               index  index.html index.htm;
           }
      }
  }
  </code></pre>
  
  <p>I've been stumped on this problem for a few days now so any help will be much appreciated. To be honest, if anyone can explain what those two warnings/errors even mean it will be helpful.</p>