Is puma the ONLY multi-threaded rails 4 http server?

No. In alphabetical order: Iodine a HTTP / Websocket Server & EventMachine alternative (kqueue/epoll based) Net::HTTP::Server, despite the lack of advertising, supports multithreading Phusion Passenger has supported multithreading since v4 beta Rainbows! supports multiple concurrency models, including multithreading Reel is a Celluloid-backed “evented” server, which “also works great for multithreaded applications and provides traditional multithreaded … Read more

RVM and thin, root vs. local user

RVM comes with a handy wrapper generator that creates an intermediary loader for an init.d script. This allows you to load a service using a particular Ruby version and gemset. I use it like this (after installing the thin gem): 1 – create init.d entry for thin sudo thin install 2 – set up some … Read more

Cannot install thin on windows

Installing from the git or rubygems repositories no longer works (currently) under 1.9.2 or 1.9.3 (confirmed still broken on 2012-June-22). Instead, you need to simply: gem install eventmachine –pre gem install thin Note that on 2012-June-18 the current prerelease was renamed to 1.0.0.rc.1, so there is a possibility that ‘soon’ the version that works with … Read more

Can nginx be used as a reverse proxy for a backend websocket server?

You can’t use nginx for this currently[it’s not true anymore], but I would suggest looking at HAProxy. I have used it for exactly this purpose. The trick is to set long timeouts so that the socket connections are not closed. Something like: timeout client 86400000 # In the frontend timeout server 86400000 # In the … Read more