4 ms·
I know that a Ruby shop naturally wants to use Ruby for everything, but when the job described is: a simple multithreaded HTTP proxy server written in Ruby (wh
by dsr_ 8y ago
I know that a Ruby shop naturally wants to use Ruby for everything, but when the job described is:
a simple multithreaded HTTP proxy server written in Ruby (which serves our DEB and RPM packages)
then I would reach for Linux ipvs or haproxy, and apache or nginx to do the serving. Good tools already exist for these things, it's a shame not to use them.
(And we have a Ruby dev group, so please don't accuse us of having a phobia or hatred of Ruby.)
- ioquatix 8y agoI think since Hongli is the main developer of Phusion Passenger, it's logical for him to want to explore the problem space. While I agree with you, I also see no harm in experimentations and changes to the status quo for the sake of trying to build something better.
- tinco 8y agoThis is a pretty old piece of software, it might predate nginx. Or if it doesn't, it probably does some non trivial url rewriting or other logic that would be a pain to do in nginx. In any case it's just something thrown together to solve a need quickly and effectively. The performance characteristics might not even have been an issue, they just caught his eye.
- Twirrim 8y agonginx has been around since 2004. haproxy since 2001. httpd since 1995..... Re-inventing the wheel is almost certainly harder than learning the configuration syntax of any of these.
- tinco 8y agoWriting an http proxy is 5 lines in node.js, and not much more in Ruby. I could do it in either without even consulting a reference. I spent hours learning nginx configuration, and could spend hours more. If all I need is a simple proxy with some logic why do it? It's not reinventing the wheel, it's building a wheel that's good enough, using the materials you got.