# Nginx-Mongrel almost working; just need a little help

**URL:** <https://www.ruby-forum.com/t/nginx-mongrel-almost-working-just-need-a-little-help/114908>\
**Category:** Rails\
**Created:** [September 18, 2007, 7:06pm UTC](https://www.ruby-forum.com/t/nginx-mongrel-almost-working-just-need-a-little-help/114908 "2007-09-18T19:06:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![eeby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecb155/32.png) [@eeby](https://www.ruby-forum.com/u/eeby)\
**Post date:** [September 18, 2007, 7:06pm UTC](https://www.ruby-forum.com/t/nginx-mongrel-almost-working-just-need-a-little-help/114908/1 "2007-09-18T19:06:12Z")

</div>

Hello Rails experts. I’m trying to set up Nginx with Mongrel cluster for  
my Rails app. I got Nginx and Mongrel cluster to each work. I got Nginx  
to serve static files no problem. It displays the Rails intro page, for  
example.

And I got Mongrel cluster to run, and when I check each of the nodes  
individually it is serving the dynamic Rails pages as expected.

However, when I start them both and then try to access my app, I get the  
error “Bad Gateway”.

In the Nginx error log I find each attempt produces three entries like  
this…

1. 2007/09/18 06:53:13 [error] 156690: \*1 connect() failed (111:  
Connection refused) while reading response header from upstream, client:  
24.143.132.67, server: [www.joehost.com](http://www.joehost.com), URL: “/journal”, upstream:  
“[http://127.0.0.1:3000/journal](http://127.0.0.1:3000/journal)”, host: “[joehost.com](http://joehost.com)”
2. 2007/09/18 06:53:13 [error] 156690: \*1 connect() failed (111:  
Connection refused) while reading response header from upstream, client:  
24.143.132.67, server: [www.joehost.com](http://www.joehost.com), URL: “/journal”, upstream:  
“[http://127.0.0.1:3001/journal](http://127.0.0.1:3001/journal)”, host: “[joehost.com](http://joehost.com)”
3. 2007/09/18 06:53:13 [error] 156690: \*1 connect() failed (111:  
Connection refused) while reading response header from upstream, client:  
24.143.132.67, server: [www.joehost.com](http://www.joehost.com), URL: “/journal”, upstream:  
“[http://127.0.0.1:3002/journal](http://127.0.0.1:3002/journal)”, host: “[joehost.com](http://joehost.com)”

My Nginx config file contains…

upstream mongrel {  
server 127.0.0.1:3000;  
server 127.0.0.1:3001;  
server 127.0.0.1:3002;  
}

server {  
listen 80;

```
 client_max_body_size 1M;

 server_name joehost.com;

 root /home/joe/www/public;

 access_log logs/nginx.joe.access.log main;

 if (-f $document_root/system/maintenance.html) {
   rewrite ^(.*)$ /system/maintenance.html last;
   break;
 }

 location / {
   proxy_set_header X-Real-IP $remote_addr;

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host;
   proxy_redirect false;
   proxy_max_temp_file_size 0;

   if (-f $request_filename) {
     break;
   }

   if (-f $request_filename/index.html) {
     rewrite (.*) $1/index.html break;
   }

   if (-f $request_filename.html) {
     rewrite (.*) $1.html break;
   }

   if (!-f $request_filename) {
     proxy_pass http://mongrel;
     break;
   }
 }

```

Any help would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![eeby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecb155/32.png) [@eeby](https://www.ruby-forum.com/u/eeby)\
**Post date:** [September 18, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/nginx-mongrel-almost-working-just-need-a-little-help/114908/2 "2007-09-18T19:52:21Z")

</div>

your config looks copy right off from [Ruby on Rails Blog / What is Ruby on Rails for?](http://brainspl.at/nginx.conf.txt)  
, seems fine.

try “server\_name [joehost.com](http://joehost.com) [www.joehost.com](http://www.joehost.com)”

there’s also a nginx config generator  
“gem install nginx\_config\_generator”

below is mine,  
upstream groups {  
ip\_hash;  
server localhost:3000;  
server localhost:3001;  
}  
server {  
listen 80;  
server\_name [groups.wuyasea.com](http://groups.wuyasea.com);

```
            access_log /u/apps/groups/current/log/access_log

```

main;  
error\_log /u/apps/groups/current/log/error\_log  
info;

```
            root /u/apps/groups/current/public;

            location / {
              # needed to forward user's IP address to rails
              proxy_set_header X-Real-IP $remote_addr;

              # needed for HTTPS
              proxy_set_header X-Forwarded-For

```

$proxy\_add\_x\_forwarded\_for;  
proxy\_set\_header Host $http\_host;  
proxy\_redirect false;  
proxy\_max\_temp\_file\_size 0;

```
              if (!-f $request_filename) {
                proxy_pass http://groups;
                break;
              }
            }
    }

```

Dorren  
[http://groups.wuyasea.com/group/nginx](http://groups.wuyasea.com/group/nginx)

---

<div class="post-metadata">

**Author:** ![eeby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecb155/32.png) [@eeby](https://www.ruby-forum.com/u/eeby)\
**Post date:** [September 18, 2007, 8:45pm UTC](https://www.ruby-forum.com/t/nginx-mongrel-almost-working-just-need-a-little-help/114908/3 "2007-09-18T20:45:35Z")

</div>

Dorren wrote:

> your config looks copy right off from [Ruby on Rails Blog / What is Ruby on Rails for?](http://brainspl.at/nginx.conf.txt)  
> , seems fine.

Thanks for the reply. Yes, it’s adapted from that config file.
