title: nginx proxy to comet
body: <p>I need some help from some linux gurus. I am working on a webapp that includes a comet server. The comet server runs on localhost:8080 and exposes the url localhost:8080/long_polling for clients to connect to. My webapp runs on localhost:80.</p>
  
  <p>I've used nginx to proxy requests from nginx to the comet server (localhost:80/long_polling proxied to localhost:8080/long_polling), however, I have two gripes with this solution:</p>
  
  <ol>
  <li>nginx gives me a 504 Gateway time-out after a minute, even though I changed <em>EVERY single time out setting</em> to 600 seconds</li>
  <li>I don't really want nginx to have to proxy to the comet server anyway - the nginx proxy is not built for long lasting connections (up to half an hour possibly). I would rather allow the clients to directly connect to the comet server, and let the comet server deal with it.</li>
  </ol>
  
  <p>So my question is: is there any linux trick that allows me to expose localhost:8080/long_polling to localhost:80/long_polling without using the nginx proxy? There must be something. That's why I think this question can probably be best answered by a linux guru.</p>
  
  <p>The reason I need /long_polling to be exposed on port 80 is so I can use AJAX to connect to it (ajax same-origin-policy).</p>
  
  <p>This is my nginx proxy.conf for reference:</p>
  
  <pre><code>proxy_redirect              off;                                                                                                                         
  proxy_set_header            Host $host;
  proxy_set_header            X-Real-IP $remote_addr;
  proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
  client_max_body_size        10m;
  client_body_buffer_size     128k;
  proxy_connect_timeout       600;
  proxy_send_timeout          600;
  proxy_read_timeout          600;
  proxy_buffer_size           4k;
  proxy_buffers               4 32k;
  proxy_busy_buffers_size     64k;
  proxy_temp_file_write_size  64k;
  send_timeout                600;
  proxy_buffering             off;
  </code></pre>