Commit 71dfbd93f4f1bc4ae443c66bb10fe85a36781367
1 parent
1295021e
Bundle unicorn for production deployments.
Showing
4 changed files
with
55 additions
and
1 deletions
@@ -30,7 +30,7 @@ gem 'sdoc', '~> 0.4.0', group: :doc | @@ -30,7 +30,7 @@ gem 'sdoc', '~> 0.4.0', group: :doc | ||
30 | # gem 'bcrypt', '~> 3.1.7' | 30 | # gem 'bcrypt', '~> 3.1.7' |
31 | 31 | ||
32 | # Use Unicorn as the app server | 32 | # Use Unicorn as the app server |
33 | -# gem 'unicorn' | 33 | +gem 'unicorn' |
34 | 34 | ||
35 | # Use Capistrano for deployment | 35 | # Use Capistrano for deployment |
36 | # gem 'capistrano-rails', group: :development | 36 | # gem 'capistrano-rails', group: :development |
@@ -60,6 +60,7 @@ GEM | @@ -60,6 +60,7 @@ GEM | ||
60 | railties (>= 4.2.0) | 60 | railties (>= 4.2.0) |
61 | thor (>= 0.14, < 2.0) | 61 | thor (>= 0.14, < 2.0) |
62 | json (1.8.3) | 62 | json (1.8.3) |
63 | + kgio (2.10.0) | ||
63 | loofah (2.0.3) | 64 | loofah (2.0.3) |
64 | nokogiri (>= 1.5.9) | 65 | nokogiri (>= 1.5.9) |
65 | mail (2.6.4) | 66 | mail (2.6.4) |
@@ -97,6 +98,7 @@ GEM | @@ -97,6 +98,7 @@ GEM | ||
97 | activesupport (= 4.2.6) | 98 | activesupport (= 4.2.6) |
98 | rake (>= 0.8.7) | 99 | rake (>= 0.8.7) |
99 | thor (>= 0.18.1, < 2.0) | 100 | thor (>= 0.18.1, < 2.0) |
101 | + raindrops (0.16.0) | ||
100 | rake (11.1.2) | 102 | rake (11.1.2) |
101 | rdoc (4.2.2) | 103 | rdoc (4.2.2) |
102 | json (~> 1.4) | 104 | json (~> 1.4) |
@@ -123,6 +125,10 @@ GEM | @@ -123,6 +125,10 @@ GEM | ||
123 | thread_safe (~> 0.1) | 125 | thread_safe (~> 0.1) |
124 | uglifier (3.0.0) | 126 | uglifier (3.0.0) |
125 | execjs (>= 0.3.0, < 3) | 127 | execjs (>= 0.3.0, < 3) |
128 | + unicorn (5.0.1) | ||
129 | + kgio (~> 2.6) | ||
130 | + rack | ||
131 | + raindrops (~> 0.7) | ||
126 | web-console (2.3.0) | 132 | web-console (2.3.0) |
127 | activemodel (>= 4.0) | 133 | activemodel (>= 4.0) |
128 | binding_of_caller (>= 0.7.2) | 134 | binding_of_caller (>= 0.7.2) |
@@ -147,6 +153,7 @@ DEPENDENCIES | @@ -147,6 +153,7 @@ DEPENDENCIES | ||
147 | tilt (~> 2.0) | 153 | tilt (~> 2.0) |
148 | turbolinks | 154 | turbolinks |
149 | uglifier (>= 1.3.0) | 155 | uglifier (>= 1.3.0) |
156 | + unicorn | ||
150 | web-console (~> 2.0) | 157 | web-console (~> 2.0) |
151 | 158 | ||
152 | BUNDLED WITH | 159 | BUNDLED WITH |
config/unicorn.rb
0 → 100644
1 | +# config/unicorn.rb | ||
2 | +worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3) | ||
3 | +timeout 15 | ||
4 | +preload_app true | ||
5 | + | ||
6 | +before_fork do |server, worker| | ||
7 | + Signal.trap 'TERM' do | ||
8 | + puts 'Unicorn master intercepting TERM and sending myself QUIT instead' | ||
9 | + Process.kill 'QUIT', Process.pid | ||
10 | + end | ||
11 | + | ||
12 | + defined?(ActiveRecord::Base) and | ||
13 | + ActiveRecord::Base.connection.disconnect! | ||
14 | +end | ||
15 | + | ||
16 | +after_fork do |server, worker| | ||
17 | + Signal.trap 'TERM' do | ||
18 | + puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT' | ||
19 | + end | ||
20 | + | ||
21 | + defined?(ActiveRecord::Base) and | ||
22 | + ActiveRecord::Base.establish_connection | ||
23 | +end | ||
24 | +# vim: set ts=2 sw=2: |
run_unicorn.md
0 → 100644
1 | +# Some notes about unicorn | ||
2 | + | ||
3 | +First off, it only servers the rails application, not the static assets. | ||
4 | +You need to have another webserver for this. | ||
5 | + | ||
6 | +## SECRET_KEY | ||
7 | + | ||
8 | +By default rails reads the secret key from the environment variable | ||
9 | +`SECRET_KEY_BASE`. It is possible to create a key with `rake secret` | ||
10 | + | ||
11 | +## Start unicorn | ||
12 | + | ||
13 | + SECRET_KEY_BASE="fa27f9d1cdfeb8590377366cb89c973b6084a20b60a4e60b551563cb1119156a0f172212f54fc096e182bf5310b6ca8cb050814c5908c8523cb191d1a054ca29" bundle exec unicorn -c config/unicorn.rb -E production | ||
14 | + | ||
15 | +## Precompile assets | ||
16 | + | ||
17 | + RAILS_ENV=production bundle exec rake assets:precompile | ||
18 | + | ||
19 | +## Urls | ||
20 | + | ||
21 | + * [heroku:Deploying Rails Applications with Unicorn](https://devcenter.heroku.com/articles/rails-unicorn) | ||
22 | + * [DigitalOcean:How To Deploy a Rails App with Unicorn and Nginx on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-unicorn-and-nginx-on-ubuntu-14-04) | ||
23 | + |
Please
register
or
login
to post a comment