Currently, I have Apache2 as my frontend and Mongrel as the rails application server.
All request comes into apache but requests for the Rails app are proxied ( mod_proxy )
to an instance of the Mongrel web server running on a different port. Just want to know
if this is the best practice in terms of robustness, scalability and security. Thanks
Currently, I have Apache2 as my frontend and Mongrel as the rails application server.
All request comes into apache but requests for the Rails app are proxied ( mod_proxy )
to an instance of the Mongrel web server running on a different port. Just want to know
if this is the best practice in terms of robustness, scalability and security. Thanks
when you say mod_proxy, did you mean mod_proxy_balancer ?
If so, one of the downside of this solution is that mod_proxy_balancer won’t skip over busy instances - but will wait for it to be free. yuck.
For this reason, and the heaviness of apache, we’ve switched to a combo of nginx and haproxy. haproxy is so damn light without the previous problem. It can also do some proxying avail in hardware balancers.
Ezra (where did I read that?) mentioned that nginx was getting a balancer itself - not sure if that’s been addressed
Some of the best minds in rails deployment are on a separate list - you might ask there.
Going back to Henry's original question, I have several websites
running on Apache+Monrgel_cluster+mod_proxy_balancer and they are
perfectly fine, including one receiving several thousands of hits a
day. We're moving most new deploys across to the nginx config as above
though, Apache is very heavy to use just as a balancer manager.