So...what is the difference between unicorn
and unicorn_rails
When should I use one or another?
It is officially answered in https://blog.engineyard.com/2010/everything-you-need-to-know-about-unicorn:
What is the unicorn executable? What is the unicorn_rails executable?
The unicorn
executable is a Rack-only tool modeled after Rack’s “rackup” and is recommended for Rack applications. unicorn_rails
was made to be an easier transition for users of pre-Rack versions of Rails. The manpage encourages Rails 3 users to use plain unicorn
instead.
What’s the difference?
From the unicorn_rails
manpage, some conventions of unicorn_rails
are modeled after script/server
found in Rails. It creates directories under “tmp” like script/server
and the -E/–environment
switch sets RAILS_ENV
instead of RACK_ENV
.
Apart from that, in my experience, some gems may need unicorn_rails in particular, like activeadmin (see this)
Also, manpage:
It is designed to help Rails 1.x and 2.y users transition to Rack, but it is NOT needed for Rails 3 applications. Rails 3 users are encouraged to use unicorn(1) instead of unicorn_rails(1). Users of Rails 1.x/2.y may also use unicorn(1) instead of unicorn_rails(1).