How setup proxy to glue couchDB to Rails?

Hello nginx people,

Is it possible to use nginx to “glue” 2 types of servers into one?

I have a rails server running here:
http://localhost:3000/rails/

And I have a couchDB server running here:
http://localhost:5984/

I’d like to configure nginx so that it listens on 8080

I want any request directed at:
http://localhost:8080/rails/
to be forwarded to
http://localhost:3000/rails/
And I want all other requests to be forwarded to
http://localhost:5984/

Have any of you done something like this?

Is nginx well suited for this or should I be learning about a true
proxy like squid or varnish?

Hi Audrey,

On 05.04.2010, at 7:07, Audrey L. [email protected] wrote:

I’d like to configure nginx so that it listens on 8080

I want any request directed at:
http://localhost:8080/rails/
to be forwarded to
http://localhost:3000/rails/
And I want all other requests to be forwarded to
http://localhost:5984/

Have any of you done something like this?
Yes. A lot and every day :wink:

You should check this:
http://wiki.nginx.org/NginxHttpProxyModule
google: proxy_pass site:nginx.org

Is nginx well suited for this or should I be learning about a true
proxy like squid or varnish?
Yes nginx is a fully powered reverse proxy. IMHO the best available
today.

Peter.

On Sun, 2010-04-04 at 20:07 -0700, Audrey L. wrote:

Hello nginx people,

Is it possible to use nginx to “glue” 2 types of servers into one?

You mean “proxy”. Yes, Nginx is a proxy.

to be forwarded to
http://localhost:3000/rails/
And I want all other requests to be forwarded to
http://localhost:5984/

server {
server_name localhost;
listen 8080;

location /rails {
proxy_pass http://localhost:3000;
include proxy.conf; # other proxy settings - see docs
}

location / {
proxy_pass http://localhost:5984;
include proxy.conf; # other proxy settings - see docs
}
}

I think I’d not want to send anything that isn’t under /rails to
CouchDB, but that’s what you asked for.

Have any of you done something like this?

Probably most anyone who’s read the documentation on proxying:

http://wiki.nginx.org/NginxHttpProxyModule

Is nginx well suited for this or should I be learning about a true
proxy like squid or varnish?

Nginx is a true proxy. Squid and Varnish are caching proxies, Nginx
has some caching capabilities as well, although not as sophisticated
(nor as complicated).

Regards,
Cliff